stackoverflow.com/questions/52858115/...

отаю с изображениями кожи, распознавая дефекты кожи, и из-за наличия шумов, в основном из-за наличия волосков, эта работа становится более сложной.

У меня есть пример изображения, в котором я работаю, пытаясь выделить только пятно на коже, но из-за большого количества волос алгоритм не эффективен. В связи с этим я хотел бы, чтобы вы помогли мне разработать алгоритм удаления или уменьшения количества волос, чтобы я мог выделить только интересующую меня область (ROI), а именно пятна.

Алгоритм, используемый для выделения дефектов кожи:

import numpy as np
import cv2

#Read the image and perform threshold
img = cv2.imread('IMD006.bmp')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.medianBlur(gray,5)
_,thresh = cv2.threshold(blur,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

#Search for contours and select the biggest one
contours, hierarchy =         cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = max(contours, key=cv2.contourArea)

#Create a new mask for the result image
h, w = img.shape[:2]
mask = np.zeros((h, w), np.uint8)

#Draw the contour on the new mask and perform the bitwise operation
cv2.drawContours(mask, [cnt],-1, 255, -1)
res = cv2.bitwise_and(img, img, mask=mask)

#Display the result
cv2.imwrite('IMD006.png', res)
#cv2.imshow('img', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

Пример изображения используется:

Как бороться с этими шумами, чтобы улучшить интересующий меня регион?

Ответы на вопрос(1)

Ваш ответ на вопрос