我试图应用拉普拉斯的中值滤波输出,以获得更清晰的图像,通过以后的处理。代码片段如下所示:
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'
此错误发生在数据集中的任何图像上。请你指出一下有什么问题吗?下面的例子来自于这个灰度图像的链接。
发布于 2020-01-17 23:00:12
与其使用两个不同的库(matplotlib
和opencv
),不如在执行图像处理时一次使用一个库。原因是因为这两个库使用不同的格式存储图像。matplotlib
使用RGB
约定,而opencv
使用BGR
。我的猜测是,由于使用matplotlib
加载映像,然后使用opencv
执行操作,您会遇到此错误。简单地说,使用cv2.imread()
而不是plt.imread()
加载映像似乎解决了这个问题。
输入->
输出
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()
https://stackoverflow.com/questions/59795803
复制相似问题