OpenCVの画像しきい値処理

閾値法および画像adaptivethreshold閾値化動作のための方法を使用して。

図1に示すように、閾値法を使用して、閾値が設定され、変換が最大値未満ゼロに閾値よりも、閾値よりも大きいです。

# -  *  - コーディング:UTF-8  -  *  - 

#OpenCVのしきい値動作

輸入CV2
輸入numpyの


#絵を読みます
IMG = cv2.imread( 'bookback.jpg'、cv2.IMREAD_COLOR)
灰色= cv2.cvtColor(IMG、cv2.COLOR_BGR2GRAY)
閾値#閾値セグメンテーション法を使用して、255に設定された閾値よりも大きい場合、以下閾値0より
RET、閾値= cv2.threshold(IMG、10255、cv2.THRESH_BINARY)
#グレー画像閾値化
RET1、THRESHOLD1 = cv2.threshold(グレー、10255、cv2.THRESH_BINARY)
#ディスプレイの画像
cv2.imshow( '元'、IMG)
cv2.imshow( 'しきい値'、しきい値)
cv2.imshow( 'gray_threshold'、THRESHOLD1)
cv2.waitKey(0)
cv2.destroyAllWindows()

 効果:上から下には、次のとおり、元のカラー画像閾値、グレー閾値画像

 

2、adaptivethreshold閾値セグメンテーション法、ガウス関数で画像情報を用いた方法、小統計的適応閾値操作を使用。

# -  *  - コーディング:UTF-8  -  *  - 


#OpenCVの適応閾値オペレーティング

輸入CV2
輸入numpyの

#絵を読みます
IMG = cv2.imread( 'bookback.jpg'、cv2.IMREAD_COLOR)
#グレースケールに変換され、
灰色= cv2.cvtColor(IMG、cv2.COLOR_BGR2GRAY)
#適応閾値、画像ソース、最大閾値タイプ、バイナリタイプ、ブロックサイズ、閾値算出定数
adaptive_thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,115,1)

#显示图片
cv2.imshow('original',img)
cv2.imshow('adaptive_thresh',adaptive_thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()

 效果:由上到下依次是:原图、阈值分割后图像

 

3、使用otsu方法进行分割,该方法基于直方图统计,通过一个阈值将直方图分为两个部分。

#基于直方图的二值化
ret,thresh = cv2.threshold(gray,40,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

 效果如下:

 

おすすめ

転載: www.cnblogs.com/lw77/p/11965955.html