bw_img = im2bw(J1,level); %输出图像为二值
获取边界后数值达到2050个,图形显示太密集,该如何降低这个数值,最后图形是这样,想要减少圆点的数量或者是增大圆点之间的距离该怎么进行
如果想要降低圆点数量或者增大圆点之间的距离,可以考虑进行形态学操作。形态学操作可以通过改变图像形状和大小来调整二值图像的形态。
常用的形态学操作包括膨胀、腐蚀、开运算和闭运算。膨胀和腐蚀操作可以用于增加或减少二值图像中的白色区域,从而达到调整二值图像的目的。开运算可以平滑图像的轮廓并消除小的噪声点,闭运算可以填补图像中的小孔并连接分离的区域。
以下是一些示例代码,用于演示如何进行形态学操作以减少圆点数量或增大圆点之间的距离:
膨胀操作
SE = strel('disk', 2);
bw_img_dilate = imdilate(bw_img, SE);
在上述代码中,使用 strel 函数定义一个半径为2的圆形结构元素,然后使用 imdilate 函数进行膨胀操作。
SE = strel('disk', 2);
bw_img_open = imopen(bw_img, SE);
在上述代码中,使用 strel 函数定义一个半径为2的圆形结构元素,然后使用 imopen 函数进行开运算操作。
闭运算操作
SE = strel('disk', 2);
bw_img_close = imclose(bw_img, SE);
在上述代码中,使用 strel 函数定义一个半径为2的圆形结构元素,然后使用 imclose 函数进行闭运算操作。
上述示例中的 bw_img 表示输入的二值图像,可以根据实际情况进行替换。使用形态学操作之后,可以得到一个调整后的二值图像,从而达到减少圆点数量或者增大圆点之间距离的效果。
不知道你这个问题是否已经解决, 如果还没有解决的话:使用interp2(X,Y,Z,X1,Y1,method)
函数, method包含:nearest
,‘linear’,‘spline’,‘cubic’
x = linspace(-5,5,11);
y = linspace(-5,5,11);
[X,Y] = meshgrid(x,y);
Z = 3.*sin(X.^2+Y.^2);
xi = linspace(-5,5,100);
yi = linspace(-5,5,100);
[XI,YI]=meshgrid(xi,yi);
ZI = interp2(X,Y,Z,XI,YI,'cubic');
surf(XI,YI,ZI),view(-25,25)