zoukankan      html  css  js  c++  java
  • Python调用OpenCV阈值化

    这一篇主要有两点:普通阈值化和自适应阈值化。

    1、普通阈值化

    普通阈值化用到的函数是cv2.threshold,其函数原型为:

    threshold(src, thresh, maxval, type, dst = None)

    其中,type的取值有以下几种cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO、cv2.THRESH_TOZERO_INV,其效果如下:

    2、自适应阈值化

    自适应阈值化的函数原型为:

    adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C, dst = None)

    其中adaptiveMethod的取值为cv2.ADPTIVE_THRESH_MEAN_C:阈值取自相邻区域的平均值和cv2.ADPTIVE_THRESH_GAUSSIAN_C:阈值取值相邻区域的加权和,权重为一个高斯窗口;blockSize是领域的大小;C是一个常数,阈值就等于的平均值或者加权平均值减去这个常数。

    src = cv2.imread('lena.bmp', 0)
    src1 = cv2.imread('lena.bmp', 0)
    cv2.adaptiveThreshold(src, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2, src)
    cv2.imshow('ADAPTIVE_THRESH_MEAN_C', src)
    cv2.adaptiveThreshold(src1, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2, src1)
    cv2.imshow('ADAPTIVE_THRESH_GAUSSIAN_C', src1)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    发现这个函数比较奇葩,最后一个参数我这里是用了原图的变量来储存,不用一个新变量的原因是我在Python3下用的是OpenCV3.4.1,如果用一个dst代替的化就会报错,运行的效果如下:

    秋风凄切伤离,

    行客未归时。

    塞外草先衰,

    江南雁到迟。

    芙蓉凋嫩脸,

    杨柳堕新眉。

    摇落使人悲,

    断肠谁得知。

    上善若水,为而不争。
  • 相关阅读:
    POJ
    POJ
    hdu 1569 &1565 (二分图带权最大独立集
    ZOJ
    POJ
    python-socket作业
    ACM-ICPC 2018 焦作赛区网络预赛 F. Modular Production Line (区间K覆盖-最小费用流)
    ACM-ICPC 2018 焦作赛区网络预赛 E. Jiu Yuan Wants to Eat (树链剖分-线性变换线段树)
    POJ 2987
    ACM-ICPC 2018 南京赛区网络预赛 G. Lpl and Energy-saving Lamps (弱线段树)
  • 原文地址:https://www.cnblogs.com/Bearoom/p/12489408.html
Copyright © 2011-2022 走看看