閾値法および画像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)
效果如下: