python使用OpenCV,進行圖像處理,五種灰度處理方式

b,g,r = cv2.split(img_dog)    # 對用cv2讀取的數據進行切片,BGR
plt_img_dog = cv2.merge([r,g,b])   # 將BGR格式轉換爲RGB格式,用於plt的圖片預覽

Img_cat = cv2.imread('cat.jpg')
b,g,r = cv2.split(Img_cat)    # 對用cv2讀取的數據進行切片,BGR
plt_img_cat = cv2.merge([r,g,b])   # 將BGR格式轉換爲RGB格式,用於plt的圖片預覽

gray_cat = cv2.imread('gray_cat.jpg')

# 超過閾值部分取maxval(最大值),否則取0
ret,thresh1 = cv2.threshold(gray_cat,127,255,cv2.THRESH_BINARY)
# THRESH_BINARY 的反轉
ret,thresh2 = cv2.threshold(gray_cat,127,255,cv2.THRESH_BINARY_INV)
# 大於閾值的部分設爲閾值,否則不變
ret,thresh3 = cv2.threshold(gray_cat,127,255,cv2.THRESH_TRUNC)
# 大於閾值的部分不改變,否則設爲0
ret,thresh4 = cv2.threshold(gray_cat,127,255,cv2.THRESH_TOZERO)
# THRESH_TOZERO 的反轉
ret,thresh5 = cv2.threshold(gray_cat,127,255,cv2.THRESH_TOZERO_INV)

titles = ['Dog Image','Orignal Image','Gray Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']
images = [plt_img_dog,plt_img_cat,gray_cat,thresh1,thresh2,thresh3,thresh4,thresh5]

for i in range(8):
    # 2,4爲2x4,2行4列排序
    ax = plt.subplot(2,4,(i+1))
    # imshow(img,camp) 
    # camp是控制繪製的格式,常見有四種:plt.cm.gray、plt.cm.gray_r、'gray'、'gray_r'
    plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([])
    plt.yticks([])  # 設置X,Y軸
plt.show()

結果展示

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章