【转载】opencv 二值化函数——cv2.threshold

https://blog.csdn.net/weixin_38570251/article/details/82079080


threshold:固定阈值二值化,

ret, dst = cv2.threshold(src, thresh, maxval,type)

src: 输入图,只能输入单通道图像,通常来说为灰度图

dst: 输出图

thresh: 阈值

maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值

type:二值化操作的类型,包含以下5种类型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV

官方文档的示例代码:

importcv2

importnumpyasnp

frommatplotlibimportpyplotasplt

img = cv2.imread('gradient.png',0)

ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)

ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)

ret,thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)

ret,thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)

ret,thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)

titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']

images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]

foriinxrange(6):

plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')

    plt.title(titles[i])

    plt.xticks([]),plt.yticks([])

plt.show()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.简单阀值cv2.threshold() 当像素值高于阀值时,我们给这个像素赋予一个新值(可能是白色),否则我们...
    Zoe_C阅读 948评论 0 0
  • 简单阈值 这里,问题很简单,如果像素值超过阈值,就给分配一个值(可能是白色),否则给分配另一个值(可能是黑色)。用...
    xxxss阅读 4,670评论 1 52
  • 本篇是自动驾驶系列的第二篇,在后台留言索取代码会提供源码链接。这次的目标是编写一个软件流水线来识别汽车前置摄像头的...
    刘老实Peter阅读 2,462评论 2 2
  • 一个简单的阈值例子就是选择一个像素值p,然后将小于p的所有像素强度设置为零,并且将所有像素值大于p设置为255.以...
    HaveyYeung阅读 5,464评论 1 5
  • 我是一位80后的宝妈,来自安徽的一个小村庄,有一对可爱的女儿。以前是全职妈妈在家带孩子,有幸在网上结识良师...
    yy清风悠然阅读 424评论 2 3