文章目录
Matlab常用图像处理命令108例(一)
1. applylut
功能:在二值图像中使用查找表(lookup table, LUT)进行边缘操作。
语法:
A = applylut(BW, lut)
BW:输入的二值图像。lut:查找表,用于定义边缘操作规则。
举例:
lut = makelut('sum(x(:)) == 4', 2);
BW1 = imread('text.tif');
BW2 = applylut(BW1, lut);
imshow(BW1);
figure, imshow(BW2);
相关命令:makelut

2. bestblk
功能:确定用于块操作的最佳块大小,通常用于优化性能。
语法:
siz = bestblk([m n], k)
[mb, nb] = bestblk([m n], k)
[m n]:图像的尺寸。k:推荐的块大小。- 返回值
siz是推荐的块大小[mb nb]。
举例:
siz = bestblk([640 800], 72);
disp(siz); % 输出:64 50
相关命令:blkproc
3. blkproc
功能:对图像的块执行显式操作。
语法:
B = blkproc(A, [m n], fun)
B = blkproc(A, [m n], fun, P1, P2, ...)
B = blkproc(A, [m n], [mborder nborder], fun, ...)
A:输入图像。[m n]:块大小。fun:要应用的函数。P1, P2, ...:传递给函数的附加参数。
举例:
I = imread('alumgrns.tif');
I2 = blkproc(I, [8 8], 'std2(x)*ones(size(x))');
imshow(I);
figure, imshow(I2, []);
相关命令:colfilt, nlfilter, inline

4. brighten
功能:增加或减少颜色映射表的亮度。
语法:
brighten(beta)
newmap = brighten(beta)
newmap = brighten(map, beta)
brighten(fig, beta)
beta:亮度调整参数,正值增加亮度,负值降低亮度。map:颜色映射表。
相关命令:imadjust, rgbplot
5. bwarea
功能:计算二值图像中对象的面积。
语法:
total = bwarea(BW)
BW:输入的二值图像。total:图像中对象的总面积。
举例:
BW = imread('circles.tif');
imshow(BW);
area = bwarea(BW);
disp(area); % 输出:15799
相关命令:bweuler, bwperim

6. bweuler
功能:计算二值图像的欧拉数。
欧拉数表示对象中连通部分的数量与孔洞数量的差。
语法:
eul = bweuler(BW, n)
n:连通性(4 或 8)。- 返回值
eul是欧拉数。
举例:
BW = imread('circles.tif');
imshow(BW);
eulerNumber = bweuler(BW, 8);
disp(eulerNumber); % 输出:-2
相关命令:bwmorph, bwperim
7. bwfill
功能:填充二值图像中的背景或孔洞。
语法:
BW2 = bwfill(BW1, c, r, n)
BW2 = bwfill(BW1, 'holes', n)
c, r:填充起始点的坐标。'holes':填充所有孔洞。
举例:
BW1 = imread('blood1.tif');
BW3 = ~im2bw(BW1);
BW4 = bwfill(BW3, 'holes');
imshow(BW3);
figure, imshow(BW4);
相关命令:bwselect, roifill

8. bwlabel
功能:对二值图像中的连通区域进行标记。
语法:
L = bwlabel(BW, n)
[L, num] = bwlabel(BW, n)
BW:输入的二值图像。n:连通性(4 或 8)。- 返回值
L是标记矩阵,num是连通区域的数量。
举例:
BW = [1 1 1 0 0 0 0 0;
1 1 1 0 1 1 0 0;
1 1 1 0 1 1 0 0;
1 1 1 0 0 0 1 0;
1 1 1 0 0 0 1 0];
L = bwlabel(BW, 4);
disp(L);
相关命令:bweuler, bwselect
9. bwmorph
功能:对二值图像执行形态学操作,例如骨架化、边缘提取、填充等。
语法:
BW2 = bwmorph(BW1, operation)
BW2 = bwmorph(BW1, operation, n)
operation:操作类型,例如'remove'(边界提取)、'skel'(骨架化)。

举例:
BW1 = imread('circles.tif');
imshow(BW1);
BW2 = bwmorph(BW1, 'remove');
BW3 = bwmorph(BW1, 'skel', Inf);
imshow(BW2);
figure, imshow(BW3);
相关命令:bweuler, bwperim, dilate, erode

10. bwperim
功能:计算二值图像中对象的周长。
语法:
BW2 = bwperim(BW1, n)
BW1:输入的二值图像。n:连通性(4 或 8)。- 返回值
BW2是标记了周长像素的二值图像。
举例:
BW1 = imread('circbw.tif');
BW2 = bwperim(BW1, 8);
imshow(BW1);
figure, imshow(BW2);
相关命令:bwarea, bweuler, bwfill

参考文献
- Gonzalez, Rafael C., Richard E. Woods, and Steven L. Eddins. Digital Image Processing Using MATLAB. Prentice-Hall, 2003.
- 阮秋琦. 数字图像处理(MATLAB版). 北京:电子工业出版社, 2014.
- 冈萨雷斯. 数字图像处理(第三版). 北京:电子工业出版社, 2011.
3189

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



