gpt4 book ai didi

opencv - 使用高斯3x3滤镜锐化有效,但结果是白色像素

转载 作者:行者123 更新时间:2023-12-02 17:42:26 24 4
gpt4 key购买 nike

以下程序无法正常工作。我正在实现高斯3x3滤镜以锐化图像文件FACE DETECTION.png,但是结果只是显示白色。我认为在卷积运算中总和的值大于255。我需要解决方案...

码:

int main()
{

Mat src, dst;
float sum;

/// Load an image
src = imread("FACE DETECTION.png", 0);

if( !src.data )
{ return -1; }

// define the kernel
float Kernel[3][3] = {
{1.0, 2.0, 1.0},
{2.0, 4.0, 2.0},
{1.0, 2.0, 1.0}
};
dst = src.clone();
for(int y = 0; y < src.rows; y++)
for(int x = 0; x < src.cols; x++)
dst.at<uchar>(y,x) = 0.0;
//convolution operation
for(int y = 1; y < src.rows - 1; y++){
for(int x = 1; x < src.cols - 1; x++){
sum = 0.0;
for(int k = -1; k <= 1;k++){
for(int j = -1; j <=1; j++){
sum = sum + Kernel[j+1][k+1]*src.at<uchar>(y - j, x - k);
sum = sum>255? 255:sum;
sum = sum<0? 0:sum;
}
}
dst.at<uchar>(y,x) = sum;
}
}


namedWindow("final");
imshow("final", dst);

namedWindow("initial");
imshow("initial", src);

waitKey();


return 0;
}

最佳答案

问题是您的内核。内核的总和应等于1,而您的等于16。

kernel = 1/16* kernel; 

将解决您的问题。

关于opencv - 使用高斯3x3滤镜锐化有效,但结果是白色像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com