#image #numpy #indices #segment
#изображение #numpy #индексы #сегмент
Вопрос:
Я пытаюсь расшифровать, как устранить причину, по которой у меня ошибка в моем коде.
В принципе, у меня есть изображение в формате JPG, и мне нужно сегментировать его, используя пороговые значения для трех каналов RGB.
Это мой код:
img = cv2.imread('sample.jpg')
img = np.asarray(img)
img = img[:,:,0:3]
plt.imshow(img)
plt.show()
img_gray = rgb2gray(img)
img_gray = np.around(img_gray)
img_gray = img_gray.astype(int)
img_gray
histogram2, bins2 = np.histogram(img_gray, bins=range(255))
plt.bar(bins2[1:], histogram2)
plt.show()
img_select = np.where((img_gray[:,:,0]<150) amp; (img_gray[:,:,1]>70) amp; (img_gray[:,:,2]<90), 1, 0)
plt.imshow(img_select, cmap = 'gray')
plt.show()
Ошибка находится в части img_select. Я получаю эту ошибку:
«слишком много индексов для массива»
Может кто-нибудь помочь мне устранить это?
Комментарии:
1.
img_gray
изображение в оттенках серого / одноканальное. Используйте исходное цветное изображениеimg
для порогового значения каналов.2. это сработало! Спасибо!