Matlab常用图像处理命令108例-matlab图像处理第26期(附完整代码)

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
在这里插入图片描述


参考文献

  1. Gonzalez, Rafael C., Richard E. Woods, and Steven L. Eddins. Digital Image Processing Using MATLAB. Prentice-Hall, 2003.
  2. 阮秋琦. 数字图像处理(MATLAB版). 北京:电子工业出版社, 2014.
  3. 冈萨雷斯. 数字图像处理(第三版). 北京:电子工业出版社, 2011.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值