#python #image-processing #cv2
#python #обработка изображений #cv2
Вопрос:
Я получаю следующую ошибку
error Traceback (most recent call last)
<ipython-input-10-2d3a348b0b9b> in <module>()
25
26 #gaussian blur (sigma = 1)
---> 27 gaus_blur1 = cv2.GaussianBlur(img,(0,0), 1, 1)
28 cv2_imshow(gaus_blur1[2000])
29
error: OpenCV(4.1.2) /io/opencv/modules/core/src/matrix.cpp:757: error: (-215:Assertion failed) dims <= 2 amp;amp; step[0] > 0 in function 'locateROI'
Когда я пытаюсь сделать
for k in range (7165):
img[k] = cv2.imread('/content/FIGURE/figure' str(k) '.png', 1)
#storing images into array of integers
img_neg = 255 - img #taking the negative
#cv2_imshow(img_neg[2000])
#voxel form
#gaussian blur (sigma = 1)
gaus_blur1 = cv2.GaussianBlur(img_neg,(0,0), 1, 1)
В большинстве онлайн-решений упоминается, что изображения неправильно считываются из папки, но это не так, я попытался построить некоторые, и набор данных именно такой. У вас есть какие-либо идеи о том, что это может быть?
Комментарии:
1. Какая строка кода выдает вам эту ошибку? Пожалуйста, покажите полную обратную трассировку, а не только ошибку.
2. @AKX Я отредактировал его. Ошибка выдается самим cv2.GaussianBlur
Ответ №1:
Хотя отсутствие контекста в вашем вопросе все еще не совсем понятно, кажется, вы пытаетесь размыть массив изображений, а не одно 2D-изображение
Размытие каждого изображения отдельно:
# could be some other structure than dicts, but it's not clear from the question
img = {}
gaus_blur = {}
for k in range(7165):
image = cv2.imread("/content/FIGURE/figure" str(k) ".png", 1)
img[k] = image # store original image
gaus_blur[k] = cv2.GaussianBlur(255 - image, (0, 0), 1, 1) # store inverse blurred image
Комментарии:
1. Это сработало.
img
иgaus_blur
были определены какnp.empty
векторы. Единственным способом было их размытие. Спасибо!