画像の閾値化を達成するためにOpenCVの使用cv2.threshold()

まず、いくつかの機能:各パラメータの意味のRET、DST = cv2.threshold(SRC、脱穀、MAXVAL、タイプ)

  1. SRC:入力して、唯一のシングルチャンネル画像入力、一般的なグレースケール画像
  2. 脱穀:しきい値
  3. MAXVAL:画素値が閾値よりも閾値以下を超えると、画素値が決定さ種類に応じて割り当てられます
タイプ 意味
cv2.THRESH_BINARY そうでない場合、閾値MAXVAL(最大値)を超える部分、および0を取り
cv2.THRESH_BINARY_INV THRESH_BINARY逆転
cv2.THRESH_TRUNC しきい値設定した閾値よりも大きいセクション、そうでない場合は変更しません
cv2.THRESH_TOZERO それ以外の場合は0に設定するセクションが変更されないしきい値よりも大きいです
cv2.THRESH_TOZERO_INV THRESH_TOZERO反転
  1. DST:出力図。
  2. RET:しきい値
    ルックによって閾値処理後の画像の効果と処理例のためにそれを使用する方法について、具体的には、以下
img=cv2.imread('cat.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)

titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]

for i in range(6):
    plt.subplot(2, 3, i + 1), plt.imshow(images[i], 'gray')
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

ここに画像を挿入説明

公開された27元の記事 ウォン称賛20 ビュー1555

おすすめ

転載: blog.csdn.net/qq_39507748/article/details/104506306