Я хотел бы использовать ORB (http://docs.opencv.org/3.1.0/d1/d89/tutorial_py_orb.html#gsc.tab=0) на 28 * 28 черно-белое изображение (рукописные цифры), где каждый пиксель имеет номер от 0 до 255.Как использовать orb на изображении в CV2?
Это код, который я использовал:
# image = {load the array of 754 numbers}
orb = cv2.ORB_create()
image = image.reshape(28, 28))
kp = orb.detect(image, None)
Но я получаю эту ошибку:
OpenCV Error: Assertion failed (depth == CV_8U || depth == CV_16U || depth == CV_32F) in cvtColor, file /home/yahya/Documents/_other_downloaded_apps/opencv/modules/imgproc/src/color.cpp, line 7935
Traceback (most recent call last):
File "/home/yahya/Documents/hello.py", line 118, in <module>
kp = orb.detect(image, None)
cv2.error: /home/yahya/Documents/_other_downloaded_apps/opencv/modules/imgproc/src/color.cpp:7935: error: (-215) depth == CV_8U || depth == CV_16U || depth == CV_32F in function cvtColor
Как я могу это сделать, и почему я получаю эту ошибку?
UPDATE
я, казалось, решила часть этой проблемы. Оказывается, что шар принимает числа float32 (не 64).
Поэтому я обновил свой код следующим образом:
orb = cv2.ORB_create()
image = feature_x[0].reshape(28, 28).astype('float32')
kp = orb.detect(image, None)
Но теперь у меня есть следующее сообщение об ошибке:
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in ipp_cvtColor, file /home/yahya/Documents/_other_downloaded_apps/opencv/modules/imgproc/src/color.cpp, line 7456
Traceback (most recent call last):
File "/home/yahya/Documents/hello.py", line 188, in <module>
kp = orb.detect(image, None)
cv2.error: /home/yahya/Documents/_other_downloaded_apps/opencv/modules/imgproc/src/color.cpp:7456: error: (-215) scn == 3 || scn == 4 in function ipp_cvtColor
Как вы создаете изображение? – Thesane
Это изображение из набора данных mnist: http://yann.lecun.com/exdb/mnist/index.html. Я не создал его сам. Это просто массив из 784 (28 * 28) чисел между 0-255. Поэтому, когда я изменяю его, он создает матрицу 28 * 28. –
Я добавил пример изображения из своего набора данных –