如何使用OpenCV在Python中编写以下MATLAB代码?我在最后一行代码中遇到问题,我不知道如何实现这个单一的'功能。你能帮助我吗 ?感谢。
img = imread('');
grayImage = rgb2gray(img);
kernel1 = -1 * ones(3)/9;
kernel1(2,2) = 8/9
filteredImage = imfilter(single(grayImage), kernel1);
我的代码如下所示,到目前为止我尝试过:
import cv2
import numpy as np
img = cv2.imread('', 0);
kernel1 = np.ones((3,3), np.float32)/9
kernel1[1][1] = 0.8888889
filteredImage = cv2.filter2D(img, -1, kernel1)
答案 0 :(得分:2)
这是MATLAB版本:
img = rgb2gray(imread('peppers.png'));
kernel = -ones(3)/9;
kernel(2,2) = 8/9;
out = imfilter(single(img), kernel1);
imshow(out, []) % <-- note automatic image rescaling
这是python版本:
import numpy as np
import cv2
img = cv2.imread("peppers.png", 0)
kernel = np.ones((3,3), np.float32) / -9.0
kernel[1][1] = 8.0/9.0
out = cv2.filter2D(img.astype(np.float32), -1, kernel)
out = (out - out.min()) / (out.max() - out.min())
cv2.imshow("image", out)
cv2.waitKey(0)