gpt4 book ai didi

opencv - 弯曲度输出

转载 作者:行者123 更新时间:2023-12-02 17:50:19 27 4
gpt4 key购买 nike

我正在尝试计算图像的弯曲度。等式是:

Lx和Ly是图像的梯度(Lxx是Lx的x分量梯度,等等here是到纸张的链接)。预期的输出应如下所示:

但是我用代码得到的只是一张带有几个黑点的白色图像。这是代码:

Mat img, curvedness;
Mat LX, LY, LXX, LXY, LYX, LYY;

sobelFilter(img, LX, LY);
sobelFilter(LX, LXX, LXY);
sobelFilter(LY, LYX, LYY);

// calculate curvedness
multiply(LXX,LXX,LXX); // LXX^2
multiply(LXY,LXY,LXY); // LXY^2
multiply(2,LXY,LXY); // 2*LXY^2
multiply(LYY,LYY,LYY); // LYY^2

add(LXX,LXY,img);
add(LYY,img,img);
pow(img,0.5,curvedness);
imshow( window_name, curvedness);

sobelFilter()代码如下:
void sobelFilter(Mat img, Mat &grad_x, Mat &grad_y) 
{
// Sobel parameters
int scale = 1;
int delta = 0;
int ddepth = CV_64F;
Mat abs_grad_x, abs_grad_y;

Sobel( img, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT );
convertScaleAbs( grad_x, abs_grad_x );
Sobel( img, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_DEFAULT );
convertScaleAbs( grad_y, abs_grad_y );
}

有什么想法我做错了吗?

最佳答案

确保您的输入图像是float类型而不是int类型。有关如何将int Mat转换为float的信息,请参见此答案。
Convert uchar Mat to float Mat in OpenCV?

关于opencv - 弯曲度输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23381264/

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