как обрезать оптические изображения, отсканированные с помощью OCT ... так, чтобы были видны только слои сетчатки - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю над проблемой классификации изображений и сейчас пытаюсь обрезать оптические изображения, отсканированные с помощью OCT, чтобы извлечь только слои сетчатки из нескольких изображений (около 85000 изображений). все изображения разные (для справки только некоторые)

Пожалуйста, решите мой код, чтобы подать заявку на все изображения, которые могут обрезать область интереса.

Я попытался найти контуры и обрезать изображение .... но не смог этого сделать, так как фон изображения не черный, а также имеет пиксели (примечание: изображение не серого цвета)

мой код:

    new_filepath = "/home/lebenpc/magick_octid"
    for new_name in os.listdir(new_filepath):
        if "." not in new_name:
            continue
        end = new_name.split(".")[1]
        if end not in ["jpeg"]:
            continue

        try:
            # Attempt to open an image file
            image= cv2.imread(os.path.join(new_filepath,new_name))
            gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
            blur = cv2.GaussianBlur(gray, (7,7), 0)
      # threshold the image, then perform a series of erosions +
      # dilations to remove any small regions of noise
            _, thresh = cv2.threshold(blur, 40, 255, cv2.THRESH_BINARY)
         # find contours in thresholded image, then grab the largest
         # one
            contours, _ = cv2.findContours(thresh, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_TC89_KCOS)
            c = max(contours, key = cv2.contourArea)
            x,y,w,h = cv2.boundingRect(c)
            crop =image[y:y+h,x:x+w]
            name,extension = os.path.splitext(new_name)
            cv2.imwrite(os.path.join("/home/lebenpc/abc", name + '.jpeg'),crop)
        except IOError:
                # Report error, and then skip to the next argument
                print ("Problem opening",new_filepath,":")

Я ожидаю код, который можно применить ко всем изображениям

Input 1

Input 2

Input 3

...