1 皮膚鏡毛發去除的目的
根據皮膚鏡圖片對皮膚病變種類進行分類是一個常規的研究話題,在深度學習時代,會將標注好的數據進行訓練,學習皮膚病變的特征,而圖片中常常會有毛發干擾,這是我們不需要的特征,也不希望網絡學習到這個特征,因此在數據預處理階段,可以使用一些傳統圖像處理算法對圖像進行處理。
2 方法
- 首先將圖像轉為灰度
- 定義一個十字的kernel,對灰度圖進行黑帽(形態學)操作
- 利用閾值分割得到mask
- 利用opencv的inpaint方法對圖像修復
3 代碼
import cv2
def DHR(imgpath,outpath):
src = cv2.imread(imgpath)
grayScale = cv2.cvtColor(src, cv2.COLOR_RGB2GRAY )
cv2.imwrite("grey.jpg",grayScale)
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(10,10))
blackhat = cv2.morphologyEx(grayScale, cv2.MORPH_BLACKHAT, kernel)
cv2.imwrite("blackhat.jpg",blackhat)
ret,thresh2 = cv2.threshold(blackhat,10,255,cv2.THRESH_BINARY)
cv2.imwrite("threshold.jpg",thresh2)
dst = cv2.inpaint(src,thresh2,1,cv2.INPAINT_TELEA)
cv2.imwrite(outpath, dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
4 結果
依次是原圖、灰度圖、黑帽操作、mask、利用mask圖像修復




