卷积边缘问题
图像卷积的时候,边界像素不能被卷积操作,因为边界像素没有完全跟kernel重合,例如3×3的kernel有1个大小的像素边缘未被处理,5×5的kernel有2个大小的像素边缘未被处理,
处理方法

增加边缘对API

代码如下:
#include<opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/highgui/highgui_c.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat src, rdst_x, rdst_y, sdst_x, sdst_y, dst, dst_my;
src = imread("E://VS-pro//images//zhu.jpg");
imshow("原图", src);
int top = (int)(0.05 * src.cols);
int bottom = top;
int left = (int)(0.05 * src.rows);
int right = left;
RNG rng(12345);
int border_type = BORDER_DEFAULT;
int c = 0;
while (true)
{
c = waitKey(500);
//ESC
if ((char)c == 27) break;
if ((char)c

本文探讨了卷积过程中遇到的边缘问题,指出由于边界像素无法与核完全重合导致的处理难题。为了解决这个问题,文章提出了一种增加边缘的处理方法,并提供了相应的代码示例,分别展示了不处理、填充为0('c')和复制边缘('w'、'r')的原图效果。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



