1.變?yōu)閞gb通道:
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
2.變?yōu)榛叶葓D:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
3.直方圖均衡化(一般需化為灰度圖):
eq = cv2.equalizeHist(gray)#灰度圖像直方圖均衡化
4.OTSU 方差法進行二值化
ret1, th1_bw = cv2.threshold(eq, 0, 255, cv2.THRESH_OTSU) th1_bw即為二值化后的圖片
5.膨脹(一般為二值化后的圖像進行二值化,但彩色圖也可操作):
1)選取核的大小:
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(12, 12))
2)膨脹
dilate1 = cv2.dilate(th1_bw,kernel)
cv2.imshow("膨脹",dilate1)
cv2.waitKey()
6.腐蝕:
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(12, 12))
dilate1 = cv2.erode(th1_bw,kernel)
cv2.imshow("腐蝕",erode)
cv2.waitKey()
7.開運算
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5, 5))
opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
cv2.imshow("Open", opened)
cv2.waitKey(0)
8.閉運算
closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
cv2.imshow("Close",closed);
cv2.waitKey(0)
9.濾波運算:
雙邊濾波:
value1 = 3
value2 = 1
dx = value1 * 12 # 雙邊濾波參數一
fc = value1 * 8 # 雙邊濾波參數二
img = cv2.bilateralFilter(img,dx,fc*2,fc/2) #雙邊濾波EPFFilter(Src)
或:
雙邊濾波器的優(yōu)點是能夠做邊緣保存(edge preserving)牢贸,一般過去用的維納濾波或者高斯濾波去降噪。都會較明顯地模糊邊緣镐捧,對于高頻細節(jié)的保護效果并不明顯潜索。
雙邊濾波器顧名思義比高斯濾波多了一個高斯方差sigma-d,它是基于空間分布的高斯濾波函數懂酱。所以在邊緣附近竹习,離的較遠的像素不會太多影響到邊緣上的像素值,這樣就保證了邊緣附近像素值的保存列牺。
blurred=cv2.bilateralFilter(img, 9,41,41)
參考:https://www.cnblogs.com/dyllove98/archive/2013/06/23/3151263.html