Лапласианский opencv терпит неудачу с cv2.error: OpenCV (4.1.2) - PullRequest
2 голосов
/ 18 января 2020

Я пытаюсь применить лапласиан к выходу медианного фильтра, чтобы получить более четкое изображение при дальнейшей обработке. Ниже приведен фрагмент кода:

img = plt.imread('example.png')
img_res = cv.resize(img,(256,256))
gray_image = cv.cvtColor(img_res, cv.COLOR_BGR2GRAY)
median_img = median_filter(gray_image, 5)
# Calculate the Laplacian
lap_img = cv.Laplacian(median_img,cv.CV_64F)

Входное изображение является медицинским изображением RGB. При запуске этого кода я столкнулся со следующей ошибкой:

 cv2.error: OpenCV(4.1.2) C:/projects/opencv-python/opencv/modules/imgproc/src/filter.simd.hpp:3175: error: (-213:The function/feature is not implemented) Unsupported combination of source format (=5), and destination format (=6) in function 'cv::opt_AVX2::getLinearFilter'

Эта ошибка возникает для любого изображения из набора данных. Не могли бы вы указать, в чем может быть проблема? Пример следует из этой ссылки для изображений в оттенках серого.

1 Ответ

1 голос
/ 18 января 2020

Вместо использования двух разных библиотек (matplotlib и opencv), при обработке изображений придерживайтесь одной библиотеки за раз. Причина в том, что эти две библиотеки используют разные форматы для хранения изображений. matplotlib использует RGB соглашение, в то время как opencv использует BGR. Я предполагаю, что вы столкнулись с этой ошибкой из-за использования matplotlib для загрузки изображения, а затем выполнения операций с opencv. Просто загрузка изображения с использованием cv2.imread() вместо plt.imread(), кажется, решает проблему

Вход -> Выход

enter image description here enter image description here

import cv2
from scipy.ndimage.filters import median_filter
import numpy as np

img = cv2.imread('1.png')
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
median_img = median_filter(gray_image, 5)
# Calculate the Laplacian
lap_img = cv2.Laplacian(median_img,cv2.CV_64F).astype(np.uint8)

cv2.imshow('lap_img', lap_img)
cv2.imwrite('lap_img.png', lap_img)
cv2.waitKey()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...