Профиль линии серого цвета с изображением scikitPython

Программы на Python
Anonymous
Профиль линии серого цвета с изображением scikit

Сообщение Anonymous »


Я хочу рассчитать профиль шкалы серого изображения, используя следующий код, используя функцию Skimage.measure.profile_line. Думаю, как я это сделал, он показывает все значения серого для каждого пикселя, через который проходит линия? Но я хочу, чтобы он отображал расстояние между точками, и в этом примере оно должно составлять около 1500 пикселей. Как мне это сделать?

импортировать cv2 импортировать imutils импортировать Skimage как лыжи импортировать matplotlib.pyplot как plt импорт математики image = cv2.imread("d0129_CTSimu2_FMT_Kegel_Al_DR_75kV_65uA.tif") серый = cv2.cvtColor(изображение, cv2.COLOR_BGR2GRAY) размытый = cv2.GaussianBlur(серый, (5, 5), 0) thresh = cv2.threshold(размыто, 60, 255, cv2.THRESH_BINARY)[1] cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = imutils.grab_contours(cnts) для c в центах: M = cv2.moments(c) cX = M["m10"] / M["m00"] cY = M["m01"] / M["m00"] если 1400 < cX < 1600 и 1400 < cY < 1600: Х = сХ Y = сY #cv2.line(изображение, (0, 0), (1500, 1500), (0, 0, 255), 1) Profile_sk = Ski.measure.profile_line(серый, (1500, 1500), (0, 0)) Gray_values ​​= [] I_max = максимум (профиль_sk) для м в профиле_ск: n = math.log(I_max/m) Gray_values.append(n) plt.plot(gray_values) plt.xlabel("Расстояние [пикселей]") plt.ylabel("Значение серого") plt.show() #cv2.imshow('img', изображение) cv2.waitKey(0)
Изображение

Вернуться в «Python»