gpt4 book ai didi

c++ - opencv中的Conv2

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:53 24 4
gpt4 key购买 nike

我正在从事图像处理工作,需要了解 C++ OpenCV 中 Matlab 的 conv2 等价物。
我找到了 this link , 但它不符合我的要求。

我面临的问题是我需要将 Mat 图像与二维双数组进行卷积,而上面的链接中给出的情况并非如此。

matlab代码为:

img = conv2(img1,Mx,'same')

在哪里

Mx = {  
{0, 0, 0, 0, 0, 0} ,
{0, -0.0003, -0.0035, 0, 0.0035, 0.0003} ,
{0, -0.0090, -0.0903, 0, 0.0903, 0.0090} ,
{0, -0.0229, -0.2292, 0, 0.2292, 0.0229} ,
{0, -0.0090, -0.0903, 0, 0.0903, 0.0090} ,
{0, -0.0003, -0.0035, 0, 0.0035, 0.0003}
};

谢谢。

最佳答案

解决方案

使用 OpenCV 的 filter2D功能。

代码示例

//initializes matrix
cv::Mat mat = cv::Mat::ones(50, 50, CV_32F);

//initializes kernel
float Mx[36] = { 0, 0, 0, 0, 0, 0 ,
0, -0.0003, -0.0035, 0, 0.0035, 0.0003 ,
0, -0.0090, -0.0903, 0, 0.0903, 0.0090 ,
0, -0.0229, -0.2292, 0, 0.2292, 0.0229 ,
0, -0.0090, -0.0903, 0, 0.0903, 0.0090 ,
0, -0.0003, -0.0035, 0, 0.0035, 0.0003
};
cv::Mat kernel(6, 6, CV_32F, Mx);

//convolove
cv::Mat dst;
cv::filter2D(mat, dst, mat.depth(), kernel);

关于c++ - opencv中的Conv2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44491883/

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