我遇到了以下问题。 我需要使用线性过滤器来过滤矩阵/图像,但我只想过滤那些周围有足够数量邻居的像素(根据内核大小)。具体来说,使用5x5内核过滤32x32图像的结果应该是28x28大小。
是否可以使用OpenCV内置函数以相对简单的方式执行此类处理?OpenCV filter2D:仅过滤部分矩阵/图像
0
A
回答
0
在opencv中有一个叫做cv :: filter2D的函数,但是输出图像的大小与输入图像的大小相同(在过滤过程中的零阶段)。还有另一个图像/数学库叫做vxl,在那里你可以找到适合你需求的convolution operator。
2
int kernel_size = 3;
cv::Mat in_img, out_img;
cv::Mat kernel = Mat::ones(kernel_size, kernel_size, CV_32F)/ (float)(kernel_size*kernel_size);
cv::filter2D(in_img, out_img, -1 , kernel); //filtering
cv::Size size = in_img.size();
cv::Rect roi(kernel_size, kernel_size,size.width - 2*kernel_size, size.height - 2*kernel_size);
cv::Mat cropped = in_img(roi).clone(); //cropping
相关问题
- 1. OpenCV图像阵列,4D矩阵
- 2. 过滤矩阵
- 3. Opencv - Filter2D函数
- 4. OpenCV通过子矩阵改变矩阵
- 5. 获取图像的矩阵中的OpenCV
- 6. 图像转换矩阵OpenCV中
- 7. OpecnCV的filter2D输出图像
- 8. filter2D OpenCV函数C++
- 9. opencv:矩阵分配混淆
- 10. OpenCV:基本矩阵分解
- 11. 如何按颜色过滤OpenCV图像中的矩形区域?
- 12. OPENCV - 直接使用指针访问过滤图像并使用内核矩阵过滤
- 13. OpenCV筛选部分图像
- 14. 部分应用css图像过滤器
- 15. 使用PIL过滤部分图像,python
- 16. MATLAB:过滤出图像的一部分
- 17. 图像矩阵的逆
- 18. 使用openCV检测图像中部分模糊的矩形
- 19. 本周过滤器矩阵
- 20. 图像滤波可分矩阵速度MATLAB
- 21. OpenCV:按图像中的颜色过滤
- 22. 带内核的OpenCV Filter2D iPhone
- 23. C++模糊图像的矩形部分
- 24. OpenCV C++摄像头图像未保存到矩阵
- 25. 将转换矩阵应用于OpenCV图像中的像素
- 26. 将图像矩阵大小复制到OpenCV中的另一个矩阵
- 27. opencv:创建矩阵或向量矩阵
- 28. OpenCV矩阵创建
- 29. 分配一个双矩阵CvMat opencv
- 30. 在opencv中划分两个矩阵
非常感谢!我认为可以调整filter2d来进行处理,而不用明确裁剪和克隆结果(如果有大量的重复处理,克隆可能会很费时间)。 – klakhman
如果您不需要使用out_img进行操作,则可以避免克隆 - 只需使用 cv :: Mat裁剪= in_img(roi); –