0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV就是CV世界的全部?

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-06-07 09:42 次阅读

在我一开始接触CV的时候,所有的资料都和我说,OpenCV,甚至一段很长一段时间里,我以为OpenCV就是CV世界的全部,但是随着研究的深入。。。

对不起,是我肤浅了。。。

但是不可否认的是它霸主的地位

但是有个奇怪的事情,就是它的Python API我是死活也找不到。。。而且,新添加的算法,都是C++的,我今天看见加了一个无损的ROI复制的功能,C++写的,你想用Python?吃屁吧你!(除了自己写)

84ffbd38-e589-11ec-ba43-dac502259ad0.png

但是它的文档依旧是很不错的学习资料

85b50dbe-e589-11ec-ba43-dac502259ad0.png

而在使用的内部也是就导入了了C++的一些编译好的文件

85ea7224-e589-11ec-ba43-dac502259ad0.png

当然也可以去看Pypi上面的库

866307d4-e589-11ec-ba43-dac502259ad0.png

可以看到你pip的都是机器自动化编译的

86c0908e-e589-11ec-ba43-dac502259ad0.png

库可以使用dorker编译

其实更新速度倒是很快,但是文档你看着C++的,写着Python,有点难受。

8735205c-e589-11ec-ba43-dac502259ad0.png

但是它给了一给pyi的文件,可以辅助编程

8772e5cc-e589-11ec-ba43-dac502259ad0.png

是我肤浅了。。。VScode的一个插件生成的。

87b7e9a6-e589-11ec-ba43-dac502259ad0.png

真真正正的CV2 是这样的

虽然写文字2不该 一贬一扶,但是针对现阶段的这个很烂的学习水平,纯C++属实是有点难为我。

所以就要找一个纯Python实现,而且功能不差,依赖的库又少,以及还在持续更新的库。

经过对比:

880afcd6-e589-11ec-ba43-dac502259ad0.png

这个库映入眼帘

888814f0-e589-11ec-ba43-dac502259ad0.png

几乎是纯Python编写

88a39ef0-e589-11ec-ba43-dac502259ad0.png

持续更新

88d7051a-e589-11ec-ba43-dac502259ad0.png

丰富的Demo

8939ac88-e589-11ec-ba43-dac502259ad0.png

一份简短但是不失实用性的小手册

89786c20-e589-11ec-ba43-dac502259ad0.png

丰富的API文档

89aceacc-e589-11ec-ba43-dac502259ad0.png

下载源码以后,打开核心的库,可以看到有着明显的分层

8a011908-e589-11ec-ba43-dac502259ad0.png

打开IO模块

8a584dfe-e589-11ec-ba43-dac502259ad0.png

可以看到实现其实是很简短的

8aa42616-e589-11ec-ba43-dac502259ad0.png

是不是几乎是看懂了(我怕你看不懂)

当然了,这些编写都是符合pep8的规范的,我扫描了一下,确实是格式的毛病不多。

8ae92b4e-e589-11ec-ba43-dac502259ad0.png

在这个data的文件夹里面有很多预先设置的图像

8b2420aa-e589-11ec-ba43-dac502259ad0.png

我们拿猫开刀

8b8154b4-e589-11ec-ba43-dac502259ad0.png

注意这个显示的时候没有实现单独的解码器,而是进行了复用

8bb6be56-e589-11ec-ba43-dac502259ad0.png

这里我也把掩码的数组打印出来了

8bf0cede-e589-11ec-ba43-dac502259ad0.png

最终我们的猫猫被处理出来

8c46f480-e589-11ec-ba43-dac502259ad0.png

当然也有可以生成3维的图形啥的

8c83a966-e589-11ec-ba43-dac502259ad0.png

这些就是库可以完成的内容,很多

8cc2ceb6-e589-11ec-ba43-dac502259ad0.png

平时图像处理要完成一些奇奇怪怪的预处理,这里也很完整的有实现过程

8d02900a-e589-11ec-ba43-dac502259ad0.png

这里有一个奇怪的文件夹

8d27b04c-e589-11ec-ba43-dac502259ad0.png

查了一下是好像是这个

8d616b34-e589-11ec-ba43-dac502259ad0.png

基准测试

基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。

8d92d5b6-e589-11ec-ba43-dac502259ad0.png

突然发现微信的编辑器,有这个功能了

8db38de2-e589-11ec-ba43-dac502259ad0.png

在doc里面,还有一些demo

8de457ce-e589-11ec-ba43-dac502259ad0.png

随便看一个(就是第一个)

8e4bd1b0-e589-11ec-ba43-dac502259ad0.png

另外一个demo

8ea9a808-e589-11ec-ba43-dac502259ad0.png

用的时候导入最顶层的skimage

8ef6ad10-e589-11ec-ba43-dac502259ad0.png

如果不指定会导入所有的模块

8f2666ea-e589-11ec-ba43-dac502259ad0.png

当然也可以使用这样的语句把所有的自带图片注册到系统路径

但是它对视频的处理不友好,可以使用PyAV这个库,当然你要下载二进制的FFmpeg。

https://github.com/BtbN/FFmpeg-Builds/releases

8f8d2e02-e589-11ec-ba43-dac502259ad0.png

8facd4d2-e589-11ec-ba43-dac502259ad0.png

https://joblib.readthedocs.io/en/latest/

9006ad9a-e589-11ec-ba43-dac502259ad0.png

图像处理需要进行大量的重复操作,也可以使用Jpblib来加速这个过程。

总的来说,这个库是现阶段和适合深入研究的库,至少以Numpy打底,日后搞什么都OK。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73607
  • OpenCV
    +关注

    关注

    31

    文章

    634

    浏览量

    41331

原文标题:下一个CV库又何必是OpenCV?

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    、车辆和其他重要元素。 2 基础知识 OpenCV 是一个开源的计算机视觉和机器学习软件库,广泛用于图像处理、视频捕捉、物体检测等领域。一些常用操作及其目的: 读取图片 使用 cv
    发表于 12-14 09:31

    基于OpenCV的拆分和合并图像通道实验案例分享_基于RK3568教学实验箱

    。 在OpenCV中,可以通过cv2.split()函数实现拆分图像通道。这个函数接受一个彩色图像作为输入,并返回一个包含三个(对于RGB图像)或四个(对于RGBA图像,包含透明度通道)灰度图像的元组
    发表于 12-03 14:27

    RK3568 + OpenCV 会碰撞出什么火花?案例详解:2-1 基于OpenCV的画线实验

    一、实验目的 本节视频的目的是了解OpenCV的作用并通过OpenCV实现画线。 二、实验原理 OpenCV 开放源代码计算机视觉库 OpenCV(Open source Comput
    发表于 12-03 14:09

    OpenCV教程之OpenCV图像阈值处理

    ),则低于125的所有内容将转换为0或黑色,而高于125的所有内容将转换为255或白色。语法如下: retval,threshold = cv2.threshold(src, thresh
    的头像 发表于 11-16 10:16 228次阅读
    <b class='flag-5'>OpenCV</b>教程之<b class='flag-5'>OpenCV</b>图像阈值处理

    如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    ;gt; 经测试,只能支持640*480 为此建立opencv_test.py import cv2 video = cv2.VideoCapture(0) 设置相机参数video .set
    发表于 11-15 17:58

    OpenCV图像识别C++代码

    安装OpenCV库 首先,您需要在您的计算机上安装OpenCV库。您可以从OpenCV官网下载预编译的库或从源代码编译。安装完成后,确保将OpenCV的头文件和库文件添加到您的项目中。
    的头像 发表于 07-16 10:42 1955次阅读

    opencv-python和opencv一样吗

    不一样。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。OpenCV
    的头像 发表于 07-16 10:38 1133次阅读

    opencv的主要功能有哪些

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了大量的计算机视觉算法和工具。以下是OpenCV的主要功能: 图像处理
    的头像 发表于 07-16 10:35 1490次阅读

    STM32MP135如何使用opencv-python或v4l2-ctl打开摄像头,并保存为图片?

    如题,我在使用v4l2-ctl和opencv的时候,打开摄像头保存是可以,但是保存出来的图片都很有问题 比如 或者图片上半部分是被压扁的不知道什么色彩的图片,下面全是灰色 我尝试过用opencv
    发表于 05-30 06:16

    基于OpenCV DNN实现YOLOv8的模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 1549次阅读
    基于<b class='flag-5'>OpenCV</b> DNN实现YOLOv8的模型部署与推理演示

    【米尔-全志T113-i开发板试用】发布opencv-mobile米尔t113i专享预编译包

    /Allwinner_SoC_Family 网站资料,sun8iw20 就是 T113 核心代号,因此这个检查方法可能在其他厂商的T113芯片上也能成功 bool is_t113i() { FILE* fp = fopen
    发表于 02-25 20:23

    【米尔-全志T113-i开发板试用】基础开发环境配置和opencv-mobile移植测试

    /highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> int main() { cv::Mat bgr = cv
    发表于 01-23 15:13

    在全志H616核桃派上实现USB摄像头的OpenCV颜色检测

    :hsvImage= cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)cv2.inRange,给定一个要检测的hsv颜色范围,返回一张黑白图。将hsv值在该范围内的像素点
    发表于 01-22 10:10

    【米尔-全志T113-i开发板试用】基础开发环境配置和opencv-mobile移植测试

    /highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> int main() { cv::Mat bgr = cv
    发表于 12-27 20:04

    【飞腾派4G版免费试用】飞腾派SeetafaceEngine人脸对齐(PART2)

    ;opencv2/imgproc/imgproc_c.h\"//CV_FILLED #include \"face_detection.h\" #include \"
    发表于 12-19 09:57