解决问题:error: (-210:Unsupported format or combination of formats) in function ‘cv::opt_AVX2::medianBl

家人们你们是不是也遇到了这个问题!!!

实验目的:给图像添加高斯噪声,然后分别使用均值滤波和中值滤波对图像进行处理

# 添加高斯噪声
def add_gauss_noise(image):
# 法1没用
    # mean = 0
    # val = 0.01
    # image = image / 255
    # noise = np.random.normal(mean, val * 5, image.shape)
    # noisy = image + noise

# 法2也没用
    # noisy = skimage.util.random_noise(image, mode='gaussian', var=0.01)
    # return noisy


def show(name, img):
    plt.title(name)
    plt.imshow(img)
    plt.show()


def methods_mean(img):
    src1 = add_gauss_noise(img)
    show('noise-src1', src1)

    # 使用3x3窗的均值滤波对噪声图像进行滤波
    src2 = cv2.blur(src1, (3, 3))
    show('3x3-mean-src1', src2)
    # 使用7x7窗的均值滤波对噪声图像进行滤波
    src3 = cv2.blur(src1, (7, 7))
    show('7x7-mean-src1', src3)


def methods_mid(img):
    # 添加高斯噪声
    src1 = add_gauss_noise(img)
    show('noise-src1', src1)
    # 使用3x3窗的中值滤波对噪声图像进行滤波
    print(src1.shape)
    src4 = cv2.medianBlur(src1, 3)
    show('3x3-mid-src2', src4)

    # 使用7x7窗的中值滤波对噪声图像进行滤波
    src5 = cv2.medianBlur(src1, 7)
    show('7x7-mid-src2', src5)


img = cv2.imread('E:\\PS\\lena.png')
show('origin-src1', img)

methods_mean(img)
methods_mid(img)

但是!我用均值滤波可以正常处理图像,可却在中值滤波的时候卡住了!报这个错!我好气!找了一下午没找出来!

今天被我偶然的看到了一个添加高斯噪声的新方法我就浅试了一下没想到居然成功了!!!

主要就是把添加高斯噪声那个函数改成下面这个就可以了!!!

def add_gauss_noise(image):
    mean = 0
    var = 0.01
    image = np.array(image / 255, dtype=float)
    noise = np.random.normal(mean, var ** 0.5, image.shape)
    out = image + noise
    if out.min() < 0:
        low_clip = -1.
    else:
        low_clip = 0.
    out = np.clip(out, low_clip, 1.0)
    out = np.uint8(out * 255)
    # cv.imshow("gasuss", out)
    return out

解决问题:error: (-210:Unsupported format or combination of formats) in function ‘cv::opt_AVX2::medianBl_第1张图片

后续:

在对图像添加高斯噪声的时候,我发现上图右边的两个做法都不行,左边的就可以,对此,我猜测,应该是,在对图像进行添加高斯噪声后,应该对图像进行一些处理,其中关键代码为:

out=np.uint8(out*255)

在右图两种加上这行关键代码之后,代码就可以正常运行了!

至于为什么要这样做:

我的猜测是在python图像处理过程中,遇到的RGB图像的值是处于0-255之间的,为了更好的处理图像,通常会将图像值转变到0-1之间?

小小拙见还请指正!

 

你可能感兴趣的:(BUG,killer,计算机视觉,opencv,python)