美文网首页
常见的图像变换二值化与形态学操作-python-opencv版

常见的图像变换二值化与形态学操作-python-opencv版

作者: a微风掠过 | 来源:发表于2018-07-17 13:18 被阅读0次

    1.变为rgb通道:
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    2.变为灰度图:
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    3.直方图均衡化(一般需化为灰度图):
    eq = cv2.equalizeHist(gray)#灰度图像直方图均衡化

    4.OTSU 方差法进行二值化
    ret1, th1_bw = cv2.threshold(eq, 0, 255, cv2.THRESH_OTSU) th1_bw即为二值化后的图片

    5.膨胀(一般为二值化后的图像进行二值化,但彩色图也可操作):
    1)选取核的大小:
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(12, 12))
    2)膨胀
    dilate1 = cv2.dilate(th1_bw,kernel)
    cv2.imshow("膨胀",dilate1)
    cv2.waitKey()

    6.腐蚀:
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(12, 12))
    dilate1 = cv2.erode(th1_bw,kernel)
    cv2.imshow("腐蚀",erode)
    cv2.waitKey()

    7.开运算
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5, 5))
    opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
    cv2.imshow("Open", opened)
    cv2.waitKey(0)

    8.闭运算
    closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
    cv2.imshow("Close",closed);
    cv2.waitKey(0)

    9.滤波运算:
    双边滤波:
    value1 = 3
    value2 = 1
    dx = value1 * 12 # 双边滤波参数一
    fc = value1 * 8 # 双边滤波参数二
    img = cv2.bilateralFilter(img,dx,fc*2,fc/2) #双边滤波EPFFilter(Src)

    或:
    双边滤波器的优点是能够做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪。都会较明显地模糊边缘,对于高频细节的保护效果并不明显。
    双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数。所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。
    blurred=cv2.bilateralFilter(img, 9,41,41)

    参考:https://www.cnblogs.com/dyllove98/archive/2013/06/23/3151263.html

    相关文章

      网友评论

          本文标题:常见的图像变换二值化与形态学操作-python-opencv版

          本文链接:https://www.haomeiwen.com/subject/xobwpftx.html