• Opencv | 二值化操作


    一. 二值化操作

    1. cv.threshold ( ) 普通二值化

    	retval, dst = cv.threshold(src, thresh, maxval, type[, dst])
    	参数:
    		src:原图像,应该是灰度图
    		thresh:当前阈值,用于对图像进行分类
    		maxval:最大阈值,一般为255,表示如果像素值大于(有时小于)阈值则要给出的值
    		type:阈值类型,主要有下面几种:
    			cv.THRESH_BINARY:默认的二值化方法,像素值大于阈值时设置为maxval,否则设置为0。
    			cv.THRESH_BINARY_INV:反向二值化,像素值大于阈值时设置为0,否则设置为maxval。
    			cv.THRESH_TRUNC:截断,像素值大于阈值时设置为阈值,否则保持不变。
    			cv.THRESH_TOZERO:像素值大于阈值时保持不变,否则设置为0。
    			cv.THRESH_TOZERO_INV:反向截断,像素值大于阈值时保持不变,否则设置为maxval。
    		dst:结果图像,可选参数,如果不提供,将创建一个新的图像。
    	返回值:
    		retval:返回一个阈值,这个值是在函数内部自动计算得到的,可以不关心
    		dst:二值化后的结果图像。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2. cv2.adaptiveThreshold ( ) 自适应二值化

    	cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst])
    	参数:
    		src: 表示输入的灰度图像,这是必选项
    		maxValue: 二值化后像素点的最大值,通常设置为255
    		adaptiveMethod: 指定自适应阈值算法
    			可以选择:
    				cv.ADAPTIVE_THRESH_MEAN_C
    				cv.ADAPTIVE_THRESH_GAUSSIAN_C
    		thresholdType: 
    			指定阈值的类型
    			可以选择cv.THRESH_BINARY / cv.THRESH_BINARY_INV
    		blockSize: 决定计算阈值的区域大小,通常是一个奇数
    		C: 从均值或加权和中减去的常数,用于调整阈值
    		dst: 可选参数,表示输出的二值图像
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2.1 大津法二值化操作

    	cv.threshold(img,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
    
    • 1

    2.2 高斯模糊大律法二值化操作

    	blur = cv.GaussianBlur(img,(5,5),0)
    	ret3,th3 = cv.threshold(blur,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
    
    • 1
    • 2
    		高斯模糊:
    		cv2.GaussianBlur(src, ksize, sigmaX, sigmaY=0, borderType=BORDER_DEFAULT)
    		参数:
    			src: 输入图像,可以是任意通道数的图像
    			ksize: 高斯核的大小,它是一个Size对象
    				   表示在每个方向上高斯核的宽度和高度:
    				   		1. 必须为正数和奇数,也可以为零
    				   		2. 根据sigmaX和sigmaY计算得出
    			sigmaX: X方向上的高斯核标准偏差,该参数决定了高斯滤波器在水平方向上的平滑程度
    			sigmaY: Y方向上的高斯核标准偏差,如果未指定,则默认为0,此时sigmaY将自动设置为与sigmaX相同的值
    			borderType: 边界类型,用于指定当高斯核超出图像边界时如何处理边界像素
    						默认值为BORDER_DEFAULT,表示使用反射边界处理
    		作用:
    			高斯模糊是一种线性平滑滤波,适用于消除高斯噪声
    		场景:
    			广泛应用于图像处理的减噪过程
    			在实际应用中,可以根据需要调整ksize和sigma的值来控制模糊的程度
    				例如,较大的ksize或sigma值会导致更强烈的模糊效果
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    感谢阅读🌼
    如果喜欢这篇文章,记得点赞👍和转发🔄哦!
    有任何想法或问题,欢迎留言交流💬,我们下次见!
    本文相关代码存放位置
        【Opencv 图像变换代码实现

    祝愉快🌟!


  • 相关阅读:
    Android的六大布局详解
    1800_vim的宏录制功能尝试
    SSM整合01
    构建电子元器件数字化采购商城系统,全面提升企业采购协同效率
    智能合约漏洞案例,Palmswap 90 万美元漏洞分析
    程序员如何写游戏搞钱?
    用这个衍生方法增加维度,风控模型特征太少也不怕
    LeetCode 41. 缺失的第一个正数
    聊一聊Twitter的雪花算法
    spring-security 过滤器
  • 原文地址:https://blog.csdn.net/weixin_49613115/article/details/137940191