c++, opencv:在过滤操作中对源和目标图像使用相同的Mat是否安全?
c++, opencv: Is it safe to use the same Mat for both source and destination images in filtering operation?
滤波操作涉及卷积,位置(x,y)
的滤波值也取决于(x-a,y-b)
与a,b >0
像素的强度。
因此,直接使用相同的图像作为目的地将导致意外的行为,因为在计算过程中,我使用一些已经过滤的数据而不是原始数据。
问题 opencv
是否在cv::GaussianBlur(.)
, cv::blur
等功能中内部管理此问题?对src
和dst
参数引用相同的Mat
是否安全?由于
可以,这样做不会有任何问题。这种事我已经做过好几次了。openCV会自动处理的
我测试了下面的代码,它工作完美:
int main(int argc, char* argv[])
{
Mat src;
src = imread("myImage.jpeg", 1);
imshow("src", src); //Original src
cv::blur( src, src, Size(25,25) , Point(-1,-1), BORDER_DEFAULT );
imshow("dst", src); //src after blurring
waitKey(0);
}
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 虚拟决赛作为安全
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 如何将元素添加到数组的线程安全函数?
- C++中的线程安全删除
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 通过网络、跨平台传递std::变体是否安全
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 在std::thread中,joinable()然后join()线程安全吗
- 使用std::istream::peek()总是安全的吗
- 将RGB图像保存为PPM格式
- c++, opencv:在过滤操作中对源和目标图像使用相同的Mat是否安全?