1 | import cv2 |
文章作者: YuKiFuHaNe
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 YuKiFuHaNeの博客!
相关推荐

2023-07-14
OpenCV 轮廓特征与轮廓近似
cv2.findContours(img,mode,method): mode:轮廓检索模式 ·RETR_EXTERNAL 只检测最外面的轮廓 ·RETR_LIST 检索所有的轮廓,并将其保存到一条链表当中 ·RETR_CCOMP 检索所有的轮廓,并将他们组织为两层:顶层是各部分的外部边界,第二层是空洞的边界 ·RETR_TREE 检索所有的轮廓,并重构嵌套轮廓的整个层次method:轮廓逼近方法 ·CHAIN_APPROX_NONE 以Freeman链码的方式输出轮廓,所有其他方法使出多边形(顶点的序列) ·CHAIN_APPROX_SIMPLE 压缩水平的、垂直和斜的部分,也就是,函数只保留他们的终点部分 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#cv2.findContours(i...

2023-07-14
OpenCV 直方图与傅里叶变换
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import cv2import numpy as npimport matplotlib.pyplot as plt#cv2.calcHist(images,channels,mask,histSize,ranges)''' ·images 原图像图像格式为uint8或float32.当传入函数是用中括号[],例如[img] ·channels 同样用中括号来,他会告函数我们统幅图像的直方图。如果传入图像是灰度图他的值就是[0],如是彩色图像的传入参数可以是[0][1][2]他们对应的是BRG ·mask 掩模图像。统整幅图像的直方图就把他的None。但是如果你想统图像莫一部分的直方图的你就制作一个掩模图像并使用他 ·histSize BIN的数目。应用中括号来 ·ranges ...

2023-07-14
OpenCV 阈值处理
cv2.threshold(src,thresh,maxval,type) src = 输入图 dst = 输出图 thresh 阈值 maxval 当前像素超过了阈值(或者小于阈值,根据type决定),所赋予的值type 二值化操作的类型包含以下五种{ · cv2.THRESH_BINARY 超过阈值部分去maxval(最大值,否则取0)· cv2.THRESH_BINARY_INV (上面的反转)· cv2.THRESH_TRUNC 大于阈值部分设为阈值,否则不变· cv2.THRESH_TOZERO 大于阈值部分不变,否则设为0· cv2.THRESH_TOZERO_INV 上面的反转} 1234567891011121314151617181920212223242526272829303132333435import cv2import matplotlib as pltimport numpy as np'''ret,dst = cv2.threshold(s...

2023-07-14
Scharr 算子与 Laplacian 算子
概念Scharr: 当内核大小为3时, 以上Sobel内核可能产生比较明显的误差(毕竟,Sobel算子只是求取了导数的近似值)。 为解决这一问题,OpenCV提供了 Scharr 函数,但该函数仅作用于大小为3的内核。该函数的运算与Sobel函数一样快,但结果却更加精确,不怕干扰,其内核为: 拉普拉斯算子(Laplacian):拉普拉斯算子是图像邻域内像素灰度差分计算的基础,通过二阶微分推导出的一种图像邻域增强算法。它的基本思想是当邻域的中心像素灰度低于它所在邻域内的其他像素的平均灰度时,此中心像素的灰度应该进一步降低;当高于时进一步提高中心像素的灰度,从而实现图像锐化处理。在算法实现过程中,通过对邻域中心像素的四方向或八方向求梯度,并将梯度和相加来判断中心像素灰度与邻域内其他像素灰度的关系,并用梯度运算的结果对像素灰度进行调整。一个连续的二元函数f(x,y),其拉普拉斯运算定义为: 对于数字图像,拉普拉斯算子可以简化为: 也可以按卷积形式表示: 其中K=1,I=1时H(r,s)取下式,四方面模板: 通过模板可以发现,当邻域内像素灰度相同时,模板的卷积运算...

2023-07-14
OpenCV 高斯滤波
123456import cv2#高斯模糊的卷积核里的数值是满足高斯分部,相当于更重视中间的img = cv2.imread("a28.png")aussian = cv2.GaussianBlur(img,(5,5),0)cv2.imshow("aussian",aussian)cv2.waitKey(3000)

2023-07-14
图像平滑处理:均值滤波与方框滤波
1234567891011121314151617181920import cv2img = cv2.imread("lingbosize.png")#均值滤波#简单的平均卷积操作blur = cv2.blur(img,(3,3))#方框滤波#normalize = True和均值一样,选择归一化box = cv2.boxFilter(img,-1,(3,3),normalize=True) #-1表示得到颜色通道数一致#没有选则归一化,容易越界,超过255当作255处理box1 = cv2.boxFilter(img,-1,(3,3),normalize=False)cv2.imshow("blur",blur)cv2.waitKey(1000)cv2.imshow("box",box)cv2.waitKey(1000)cv2.imshow("box1",box1)cv2.waitKey(1000)cv2.waitKey(0) 平均卷积 方框滤波(未归一化) 方框滤波(归一化)