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()
python使用OpenCV,進行圖像處理,五種灰度處理方式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.