合集-OpenCV
摘要:接上一随笔,这次学习针对图像数据的访问(Numpy.array) 在OpenCV中,使用 imread() 方法可以访问图像,其返回值是一个数组,而根据传入的不同图像,将会返回不同维度的数组。 针对返回的图像数据,即数组,我们是可以进行操作的: 1 import cv2 2 3 # MyPic.pn
阅读全文
摘要:一、读取写入视频文件 1 import cv2 2 3 # 创建一个视屏捕获对象 4 videoCapture = cv2.VideoCapture('AVI.avi') 5 6 # 获取视频的属性值,cv2.CAP_PROP_FPS获取视频帧率 7 fps = videoCapture.get(c
阅读全文
摘要:Cameo项目介绍: 1、实时捕获并显示摄像头帧。 2、具备截图、保存视频和退出三个功能键。 要求存在文件:manager.py 和 cameo.py 一、manager.py 两个类:CaptureManager、WindowManager CaptureManager负责摄像头帧的捕获,编解码得
阅读全文
摘要:对于使用OpenCV已有的算子,我们还可以自定义卷积核以达到不同的效果。 filters.py 1 import cv2 2 import numpy 3 4 """ 定义滤波器和类 """ 5 6 7 def strokeEdges(src, dst, blurKsize=7, edgeKsize
阅读全文
摘要:Code: 1 import cv2 2 import numpy as np 3 4 img = np.zeros((200, 200), dtype=np.uint8) 5 img[50:150, 50:150] = 255 6 7 # ret, thresh = cv2.threshold(i
阅读全文
摘要:外接矩形、外接圆: 1 import cv2 2 import numpy 3 4 img = cv2.imread('../img/img.png', -1) 5 ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) 6 con
阅读全文
摘要:针对遇到的各种复杂形状的主体,大多情况下,我们可以求得一个近似的多边形来简化视觉图像处理,因为多边形是由直线组成的,这样就可以准确的划分区域来便捷后续的操作。 cv2.arcLength() Method: 参数: curve:要计算周长的轮廓,可以是一个矩形、圆形、多边形等封闭曲线。 closed
阅读全文
摘要:重新理解一下Canny方法: 参数: image:输入的图像。 threshold1:第一个阈值,用于检测边缘的强度梯度的下限。 threshold2:第二个阈值,用于检测边缘的强度梯度的上限。 apertureSize:Sobel算子的大小,可选值为3、5、7,默认值为3。 L2gradient:
阅读全文
摘要:关于二维码和条形码的检测和识别,在OpenCV中已经有提供了对应的API,cv2.QRCodeDetector() | cv2.barcode_BarcodeDetector() ,相关的实现极其简单: 只需要上述短短三行代码即可检测二维码和条形码的位置并识别码内信息,相关parameter和ret
阅读全文
摘要:根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域。 cv2.moments(): 参数: array:表示输入图像的单通道数组。通常是灰度图像,可以是8位或浮点
阅读全文
摘要:在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个“回”字从而达到定位二维码的目的,但是返回的hierarchy中的层级信息分别对应的是哪个轮廓却困扰了许久,查阅了很多资料最后还是自己手动找出了清晰的规律。 关于hierarchy返回的每一
阅读全文
摘要:相较于BarCode,QRCode有明显的特征区域,也就是左上角、右上角、左下角三个”回“字区域,得益于hierarchy中,父子关系的轮廓是连续的(下标),所以这个时候我们就可以通过cv2.findContours()返回的hierarchy来进行定位。 我们直接上代码 1 import cv2
阅读全文
摘要:接着练手图像处理例子 抛开网上截图进行OCR识别,更多的图源来自于我们的手机,相机等等设备,而得到的图片都并非是板正的,大多随手一拍的图源都是带有角度的,所以我们需要先将图像进行摆正。 首先先对图像进行预处理,上代码: 1 def edge_detect(image): 2 gray = cv2.c
阅读全文
摘要:对于OCR技术在处理有角度有偏差的图像时是比较困难的,而水平的图像使用OCR识别准确度会高很多,因为文本通常是水平排列的,而OCR算法一般会假设文本是水平的。 针对上述情况,所以我们在处理有角度的图象时,需要将图像“摆正”,将使用到getPerspectiveTransform方法和warpPers
阅读全文
摘要:通过上一篇博客,我们成功将有角度的图片进行“摆正”,接下来我们来提取图片中的文字。 我们使用Tesseract来处理图片并提取文字,相关下载安装请参考:Python下Tesseract Ocr引擎及安装介绍 - 黯然销魂掌2015 - 博客园 (cnblogs.com) 同时我们需要下载第三方Lib
阅读全文
摘要:记录一下Visual Studio配置OpenCV过程以及出现的问题 本机环境: 1、Windows10 2、Visual Studio 2022 配置步骤: 1、下载OpenCV(Releases · opencv/opencv · GitHub)在GitHub上下载最新的版本 2、双击打开,然后
阅读全文
摘要:此次我们将一张图像转灰度后再进行灰度取反,即黑的变白的,白的变黑的,所以我们需要获取每个像素点上的灰度级,cv中提供了一个函数at,但是这个函数还有11个重载函数,太多了,我们只用这次需要用到的,即通过读取像素点的位置来获取灰度级。 ◆ at() [3/12] template<typename _
阅读全文
摘要:借助官方离线文档中的samples来理解VideoWriter 文档位置:samples/cpp/tutorial_code/videoio/video-write/video-write.cpp 注:需要提前下载 openh264-1.8.0-win64.dll,然后放在Release文件夹下 ,
阅读全文
摘要:1、安装Visual Studio,勾选C++和Python负荷 2、安装CUDA | Pytorch | Python 这三者之间的版本关系很重要 详情参考:Pycharm搭建CUDA,Pytorch教程(匹配版本,安装,搭建全保姆教程)_cuda12.3对应的pytorch版本-CSDN博客 3
阅读全文