当前位置:   article > 正文

opencv 形态学图像处理-自适应阈值二值化_(二)形态学处理 1、读入并显示图像coins.png;选取合适的阈值,得到二值化图像; 2、

(二)形态学处理 1、读入并显示图像coins.png;选取合适的阈值,得到二值化图像; 2、

什么是形态学处理

  • 基于图像形态进行处理的一些基本方法
  • 这些处理方法基本上是对二进制图像进行处理
  • 卷积核决定着图像处理的效果

形态学图像处理的方法

  • 腐蚀与膨胀
  • 开运算
  • 闭运算
  • 顶帽
  • 黑帽

什么是二值化

  • 将图像的每个像素变为两种值,如0,255
  • 全局二值化
    threshod(img,thresh, maxVal, type)
    img:图像,最好是灰度图
    thresh:阈值
    maxVal: 超过阈值,替换成maxVal
    type: THRESH_BINARY和THRESH_BINARY_INV
    THRESH_TRUNC
    THRESH_TOZERO和THRESH_TOZERO_INV
import cv2 as cv
import numpy as np

img = cv.imread('./dog.jpeg')
img1 = cv.cvtColor(img,cv.COLOR_BGR2GRAY)


ret, dst = cv.threshold(img1,180,255, cv.THRESH_BINARY)

cv.imshow('img', img)
cv.imshow('img1', img1)
cv.imshow('dst', dst)

cv.waitKey(0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述
在这里插入图片描述

  • 局部二值化
    自适应阈值
    由于光照不均以及阴影的存在,只有一个阈值会使得在阴影处的白色被二值化成黑色
    adaptiveThreshold(img, maxVal, adaptiveMethodtype,blockSize,C)
    adaptiveMethodtype:计算阈值的方法
    blockSize: 邻近区域的大小
    C:常量,应从计算出的平均值或加权平均值中减去
    adaptiveMethod的方法:
    cv.ADAPTIVE_THRESH_MEAN_C 计算邻近区域的平均值
    cv.ADAPTIVE_THRESH_GAUSSIAN_C 高斯窗口加权平均值
    Type
    type: THRESH_BINARY和THRESH_BINARY_INV
import cv2 as cv
import numpy as np

img = cv.imread('./dog.jpeg')
img1 = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

# ret, dst = cv.threshold(img1,180,255, cv.THRESH_BINARY)
dst = cv.adaptiveThreshold(img1, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 3, 0)
cv.imshow('img', img)
cv.imshow('img1', img1)
cv.imshow('dst', dst)

cv.waitKey(0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/78963
推荐阅读
相关标签
  

闽ICP备14008679号