#python #opencv #computer-vision #scikit-image #tomography-reconstruction
#python #opencv #компьютерное зрение #scikit-изображение #томография-реконструкция
Вопрос:
Я создаю материал для класса компьютерного зрения (CV), и я хотел бы рассчитать площадь этой выделенной части с помощью обычных методов CV:
Итак, я применил Canny для обнаружения краев и преобразования окружности Хафа, пытаясь найти соответствующую область. Это мои результаты:
Я попытался использовать Watershed с маркерами в качестве центра найденных кругов, но у меня ничего не получилось. У кого-нибудь есть идеи, как я могу продолжить или есть другие идеи?
Вот код :
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
from skimage.feature import canny
from skimage.transform import hough_circle, hough_circle_peaks
from skimage.draw import circle_perimeter
from skimage.segmentation import watershed
import urllib.request
urllib.request.urlretrieve("https://github.com/LAVI-USP/SEL0339-SEL5886/raw/master/imagens/pratica_07/head_CT.tif", "head_CT.tif")
# Read image
img = cv.imread("head_CT.tif",-1)
# Edge detector
edges = canny(img, sigma=2.0, low_threshold=19, high_threshold=57)
# Hough_circle
hough_radii = np.arange(29, 32, 1)
hough_res = hough_circle(edges, hough_radii)
accums, cx, cy, radii = hough_circle_peaks(hough_res, hough_radii,total_num_peaks=4, min_xdistance=200,min_ydistance=200, threshold=0.25)
# Remove false-posite circle
sortX = np.argsort(cx)
cx = cx[sortX[:-1]]
cy = cy[sortX[:-1]]
radii = radii[sortX[:-1]]
# Draw red circles
img_rgb = np.tile(np.expand_dims(img,axis=-1),(1,1,3),)
for center_y, center_x, radius in zip(cy, cx, radii):
circy, circx = circle_perimeter(center_y, center_x, radius,shape=img_rgb.shape)
img_rgb[circy, circx] = (220, 20, 20)
# Plot images
imgs = [img_rgb, edges]
r,c = 1,2
fig, axs = plt.subplots(r, c, figsize=(15,15))
for i in range(r):
for j in range(c):
axs[j].imshow(imgs[i*c j], cmap='gray')
axs[j].axis('off')
Спасибо за любую помощь.
* Это изображение из книги Gonzalez amp; Woods «Цифровая обработка изображений».
Комментарии:
1. Взгляните на модуль измерения в skimage
2. Проверьте подход с активными контурами (змеи), например , проверьте здесь intechopen.com/books/medical-and-biological-image-analysis /… , или методы сегментации с заданным уровнем (chan vese scikit-image.org/docs/stable/auto_examples/segmentation /… ).