【问题标题】:Why does cv2.medianBlur returns a format error?为什么 cv2.medianBlur 返回格式错误?
【发布时间】:2021-07-20 01:20:29
【问题描述】:

我正在尝试在图像上使用 cv2.medianBlur,但除非我使用 cv2.read 导入图像,否则它不起作用。由于我不想更改我的其余代码,任何人都可以向我解释为什么会发生这种情况或任何其他方法来实现相同的结果?

def medianFilterData(data, w):
    fdata = []
    for i in range(0, len(data)):
        img = data[i].astype('d')
        median = cv2.medianBlur(img, w)
        fdata.append(median)
    return fdata

错误:

cv2.error: OpenCV(4.5.1) C:/Users/appveyor/AppData/Local/Temp/1/pip-req-build-kh7iq4w7/opencv/modules/imgproc/src/median_blur.simd.hpp:975: error: (-210:Unsupported format or combination of formats)  in function 'cv::opt_AVX2::medianBlur'

第一张图片是:

【问题讨论】:

  • 发生这种情况是因为尽管medianBlur 的文档清楚地表明“图像深度应该是 CV_8U、CV_16U 或 CV_32F”,但您却给它一个明确转换为 64 位浮点数的数组。跨度>

标签: python image opencv cv2 median


【解决方案1】:

试试.astype('int8').astype('float32')

def medianFilterData(data, w):
    fdata = []
    for i in range(0, len(data)):
        img = data[i].astype('int8')
        median = cv2.medianBlur(img, w)
        fdata.append(median)
    return fdata

【讨论】:

  • 'int8' 不起作用,但 'float32' 完成了工作!非常感谢!
猜你喜欢
  • 2021-03-19
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多