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

    文章

    2122

    浏览量

    76713
  • OpenCV
    +关注

    关注

    33

    文章

    651

    浏览量

    44420

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    零成本钢铁侠手套!树莓派+OpenCV 秒变手势遥控器!

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-16 16:16 886次阅读
    零成本钢铁侠手套!树莓派+<b class='flag-5'>OpenCV</b> 秒变手势遥控器!

    如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-14 17:45 961次阅读
    如何使用树莓派与<b class='flag-5'>OpenCV</b>实现面部和运动追踪的云台系统?

    【创龙TL3562-MiniEVM开发板试用体验】问题4 ubuntu镜像,opencv不能正常工作??

    /simple --trusted-host mirrors.aliyun.com opencv-python 示例代码 import cv2 # 初始化摄像头对象,0通常是默认的摄像头索引 #cap
    发表于 08-11 22:17

    【GM-3568JHF开发板免费体验】OpenCV开发环境安装和计数程序开发

    ==================== cv2.waitKey() cv2.destroyAllWindows() 5.2、图像识别 经过多种场景的验证,大家能看出来OpenCV图像识别是否准确跟图像的色差有绝对的关系
    发表于 08-09 13:30

    【GM-3568JHF开发板免费体验】OpenCV 视频目标跟踪 ( CamShift)

    中的实现 在 OpenCV 中,CamShift 算法通过 cv2.CamShift() 函数实现。 # -*- coding: utf-8 -*- import cv2 import
    发表于 08-09 13:19

    如何板端编译OpenCV并搭建应用--基于瑞芯微米尔RK3576开发板

    .. make-j8 可以首先测试下opencv环境是否正常 输入 ./example_opencv即可打开如上命令,证明系统的cv环境没有问题 性能测试 在hog测试中dnn加速平均帧率10fps左右 8cpu已经接近
    发表于 08-08 17:14

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试

    ;opencv2/imgproc/imgproc.hpp> int main() { cv::Mat bgr = cv::imread(\"in.jpg\", 1
    发表于 07-11 13:48

    itop-3568开发板机器视觉opencv开发手册-图像绘制-画线

    本小节代码在配套资料“iTOP-3568 开发板\\\\03_【iTOP-RK3568 开发板】指南教程 \\\\04_OpenCV 开发配套资料\\\\11”目录下,如下图所示: cv
    发表于 06-04 10:38

    半导体器件CV测量技术解析

    前言:研究器件特性和器件建模都离不开精确的电容电压(CV)测量。精确的CV模型在仿真器件的开关特性,延迟特性等方面尤为重要。目前,在宽禁带器件(GaN/SiC)、纳米器件、有机器件、MEMS等下
    的头像 发表于 06-01 10:02 1187次阅读
    半导体器件<b class='flag-5'>CV</b>测量技术解析

    基于LockAI视觉识别模块:C++轮廓检测

    。 2. API文档 2.1 头文件 #include <opencv2/opencv.hpp> 2.2 高斯模糊 cv::GaussianBlur(src, dst
    发表于 05-22 10:05

    基于LockAI视觉识别模块:C++图像的基本运算

    #include <opencv2/opencv.hpp> 2.2 获取设置像素点 uchar cv::Mat::at<uchar>(int
    发表于 05-06 16:56

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

    摄像头)1、安装python3-opencvaptinstallpython3-opencv(左右移动查看全部内容)2、查看摄像头支持的格式与分辨率root@debi
    的头像 发表于 04-15 11:51 640次阅读
    如何用<b class='flag-5'>OpenCV</b>的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    快速部署!米尔全志T527开发板的OpenCV行人检测方案指南

    本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV行人检测方案测试。摘自优秀创作者-小火苗 一、软件环境安装1.在全志T527开发板安装OpenCV
    发表于 04-11 18:14

    使用OpenVINO™模型的OpenCV进行人脸检测,检测到多张人脸时,伺服电机和步入器电机都发生移动是为什么?

    使用OpenVINO™模型的 OpenCV* 进行人脸检测。 使用 cv2.矩形 函数,能够获取检测到的面部的坐标。 检测到多张人脸时,多个坐标被捕获到,伺服电机和步入器电机都发生移动。
    发表于 03-07 06:35

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

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