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++
    +关注

    关注

    21

    文章

    2085

    浏览量

    73350
  • OpenCV
    +关注

    关注

    29

    文章

    622

    浏览量

    41113

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

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

收藏 人收藏

    评论

    相关推荐

    OpenCV图像识别C++代码

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

    opencv-python和opencv一样吗

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

    opencv的主要功能有哪些

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

    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 1107次阅读
    基于<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人脸检测

    使用的OpenCV版本是早期OpenCV–2.4.11,需手工修改为支持OpenCV-4.x版本函数。Seetaface包含 人脸检测FaceDetection 、 人脸对齐FaceAlignment 、人脸
    发表于 12-18 10:53

    OpenCV4.8 CUDA编程代码教程

    OpenCV4支持通过GPU实现CUDA加速执行,实现对OpenCV图像处理程序的加速运行,当前支持加速的模块包括如下。
    的头像 发表于 12-05 09:56 872次阅读
    <b class='flag-5'>OpenCV</b>4.8 CUDA编程代码教程

    OpenCV图像处理之图像梯度+Canny边缘检测

    的参数分别是原图像,cv.CV_64F是图像深度,一般写作-1就可以了,dx和dy分别表示x轴方向和y轴方向的算子,ksize就是内核
    的头像 发表于 11-14 15:54 433次阅读
    <b class='flag-5'>OpenCV</b>图像处理之图像梯度+Canny边缘检测

    OpenCV实验大师平台安装指南

    工程与技术培训得痛点深深教育了我,让我知道“工欲善其事必先利其器”。通过一年多得努力开发与不断打磨,一款能够提升OpenCV教学质量与OpenCV工程化开发质量与速度的工具软件成功出现了。它就是
    的头像 发表于 11-13 11:43 747次阅读
    <b class='flag-5'>OpenCV</b>实验大师平台安装指南

    openCV边缘检测原理是什么?

    openCV是通过什么原理来实现边缘检测的
    发表于 10-10 06:21

    OpenCV 如何加载图片

    之前也写过一些 OpenCV 的文章,最近正好在考虑 写一个 OpenCV相关的工具,目前还是在开发过程中,边开发边更新。预计会持续一段时间。目前的想法是把 OpenCV 的 API 在这个工具上都
    的头像 发表于 10-09 15:01 621次阅读