OpenCV基础_二
2024-09-05 19:34:29
阈值和平滑处理
cv2.threshold()二值化函数
ret,thresh = cv2.threshold(src, thresh, maxval, type[, dst])
- 参数
src:所要进行二值化处理的灰度图
thresh:阈值
maxval:最大值
type:有八种常见类型
- 返回值
ret:参数中指定的阈值thresh
thresh:二值化后的灰度图
平滑处理
原图:
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 均值滤波 简单的平均卷积操作
img = cv2.imread('ZS.png')
blur = cv2.blur(img,(3,3))
cv_show('img',blur)
- 方框滤波 基本和均值滤波一样 (可以选择归一化,若不归一化容易越界,越界取255)
img = cv2.imread("ZS.png")
box = cv2.boxFilter(img,-1,(3,3),normalize=True)
cv_show('img',box)
- 高斯滤波
img = cv2.imread("ZS.png")
aussian = cv2.GaussianBlur(img,(3,3),1)
cv_show('img',aussian)
- 中值滤波 用中值代替
img = cv2.imread("ZS.png")
median = cv2.medianBlur(img,5)
cv_show('img',median)
- 均值滤波 高斯滤波 中值滤波 比较
res = np.hstack((blur,aussian,median)) cv_show('res',res)
Canny边缘检测
利用高斯滤波对图像平滑处理
Canny(img,minval,maxval)利用高阈值进行非最大值抑制
高于高阈值 保留
低于低阈值 舍弃
处于高阈值和低阈值之间若和保留点项链则保留,否则舍弃
阈值越高,条件越苛刻,符合的边缘越少
img = cv2.imread('1.jpg')
v1 = Canny(img,100,200)
v2 = Canny(img,50,100) res = np.hstack((v1,v2))
cv_show('res',res)原图:
边缘检测图:
最新文章
- WPF中Grid实现网格,表格样式通用类
- unity3d关于碰撞问题
- WSDL项目----操作和请求
- 解决PHP在IE中下载文件,中文文件名乱码问题
- FreeBSD_11-系统管理——{Part_2-核心}
- UWP深入学习三:依赖属性、附加属性和数据绑定
- Excel scientific notation issue
- 给Windows机器创建软连接
- SpringMVC3的ResponseBody返回字符串(JSON)乱码问题解决
- 内存数据库(sqlite)和 map数据结构 做缓存对比
- frameset 与frame 设置的技巧
- pyqt5实现注册界面并获得文本框内容
- EndNote中文文献导入出错和数量限制解决
- SpringBoot使用SOFA-Lookout监控
- Oracle SQL语句之常见优化方法总结--不定更新
- SQL Join 与 In的效率
- nGrinder TestRunner DNS / sun.net.spi.nameservice.NameServiceDescriptor
- VIM下的可视模式的相关知识
- vue经验 - 那些自己给自己挖的深坑
- Python的数据类型2列表