python将灰度图像二值化,如何对图像进行二值化处理

  python将灰度图像二值化,如何对图像进行二值化处理

  在用大蟒进行图像处理时,二值化是非常重要的一步,现总结了自己遇到过的6种图像二值化的方法(当然这个绝对不是全部的二值化方法,若发现新的方法会继续新增)。

  相关学习推荐:python视频教程

  1.中文版简单阈值cv2。阈值

  2.中文版自适应阈值cv2.adaptiveThreshold(自适应阈值中计算阈值的方法有两种:平均值c和高斯_c,可以尝试用下哪种效果好)

  3.大津的二值化

  例子:

  导入cv2

  将数组作为铭牌导入

  从绘制精美的图表导入pyplot作为血小板计数

  img=cv2.imread(scratch.png ,0)

  #全局阈值

  ret1,th1=cv2.threshold(img,127,255,cv2 .THRESH_BINARY)

  # Otsu阈值

  th2=cv2.adaptiveThreshold(img,255,cv2 .自适应_阈值_均值_C,cv2 .THRESH_BINARY,11,2)

  # Otsu阈值

  # 阈值一定要设为0 !

  ret3,th3=cv2.threshold(img,0,255,cv2 .THRESH_BINARY cv2 .OTSU)

  #绘制所有图像及其直方图

  images=[img,0,th1,img,0,th2,img,0,th3]

  头衔=[

  原始噪声图像,直方图,全局阈值(v=127),

  原始噪声图像,直方图,自适应阈值,

  原始噪声图像,直方图,‘大津阈值化

  ]

  # 这里使用了pyplot中画直方图的方法,plt.hist,要注意的是它的参数是一维数组

  # 所以这里使用了(numpy)拉威尔方法,将多维数组转换成一维,也可以使用变平方法

  # ndarray.flat数组上的一维迭代器。

  # ndarray.flatten按行优先顺序排列数组元素的一维数组副本。

  对于范围(3):中的我

  plt.subplot(3,3,i * 3 1),plt.imshow(images[i * 3], gray )

  plt.title(titles[i * 3]),plt.xticks([]),plt.yticks([])

  plt.subplot(3,3,I * 3 ^ 2),plt.hist(images[i * 3]).拉威尔(256)

  PLT。title(titles[I * 3 ^ 1]),plt.xticks([]),plt.yticks([])

  plt.subplot(3,3,i * 3 3),plt.imshow(images[i * 3 2], gray )

  PLT。title(titles[I * 3 ^ 2]),plt.xticks([]),plt.yticks([])

  plt.show()结果图:

  4.克扣尼布莱克阈值

  5.斯金奇索沃拉阈值(主要用于文本检测)

  例子:

  https://sci工具包-图片。org/docs/dev/auto _ examples/segmentation/plot _ ni black _ sauvola。超文本标记语言

  导入绘制精美的图表

  将matplotlib.pyplot作为血小板计数导入

  从skimage.data导入页面

  从撇除.过滤器导入(threshold_otsu,threshold_niblack,

  threshold_sauvola)

  matplotlib。RC params[ font。尺寸]=9

  image=page()

  二进制_全局=图像阈值_otsu(图像)

  window_size=25

  thresh _ ni black=threshold _ ni black(image,window_size=window_size,k=0.8)

  thresh _ sauvola=threshold _ sauvola(image,window_size=window_size)

  binary _ ni black=图像阈值_ ni黑色

  binary _ sauvola=image thresh _ sauvola

  plt.figure(figsize=(8,7))

  plt.subplot(2,2,1)

  plt.imshow(image,cmap=plt.cm.gray)

  plt.title("原件")

  plt.axis("关")

  情节子情节(2,2,2)

  plt.title(全局阈值)

  plt.imshow(binary_global,cmap=plt.cm.gray)

  plt.axis("关")

  情节子情节(2,2,3)

  plt.imshow(binary_niblack,cmap=plt.cm.gray)

  plt.title(Niblack阈值)

  plt.axis("关")

  情节子情节(2,2,4)

  plt.imshow(binary_sauvola,cmap=plt.cm.gray)

  plt.title(索沃拉阈值)

  plt.axis("关")

  plt.show()结果图:

  6.积分阈值(主要用于文本检测)

  使用方法: 运行下面网址的util.py文件

  https://github.com/Liang-yc/IntegralThreshold

  结果图:

  以上就是计算机编程语言图像处理二值化方法实例云集的详细内容,更多请关注盛行信息技术软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python将字符串转换成日期,python 字符串转换为日期
  • python将字符串转换成日期,python 字符串转换为日期,Python如何将字符串转换为日期
  • python将字符串转换为数字型,python中数字字符和数字值有何不同,如何转换
  • python将两个一维数组转化为二维数组,matlab把二维数组转为三维数组
  • python将文本转为数组,python读取txt文件为数组
  • python将一个正整数分解成质因数,用python分解质因数
  • python单位转换编程英寸厘米,python将8厘米转换为以英寸为单位的长度并输出
  • python将列表中指定元素修改,python 替换列表中的元素
  • Python将字符串分割,python中把字符串分割成单个字符
  • python将数字转换为日期,python excel写入日期变数字
  • Python读取文件名写入Excel,python将结果写入excel文件
  • 用python将字符串进行反转,python中字符串反转函数
  • python 数字类型和字符串类型的相互转换,python将字符串类型转换为数字
  • Python读取文件名写入Excel,python将数据写入excel指定单元格
  • python中将字符串转化为数字,Python将字符串转为数字
  • 留言与评论(共有 条评论)
       
    验证码: