写点什么

Matlab 常用图像处理命令 108 例(二)

作者:timerring
  • 2023-03-12
    山东
  • 本文字数:1683 字

    阅读完需:约 6 分钟

文章和代码以及样例图片等相关资源,已经归档至【Github 仓库:digital-image-processing-matlab】或者公众号【AIShareLab】回复 数字图像处理 也可获取。

11.bwselect

功能:在二进制图像中选择对象。语法:


BW2 = bwselect(BW1,c,r,n) 
BW2 = bwselect(BW1,n)
[BW2,idx] = bwselect(...)
复制代码


举例


BW1 = imread('text.tif');
c = [16 90 144];
r = [85 197 247];
BW2 = bwselect(BW1,c,r,4);
imshow(BW1)
figure, imshow(BW2)
复制代码



相关命令:


bwfill, bwlabel, impixel, roipoly, roifill

12.cmpermute

功能:调整颜色映像表中的颜色。


语法:


[Y,newmap] = cmpermute(X,map) 
[Y,newmap] = cmpermute(X,map,index)
复制代码


举例


To order a colormap by luminance, use:
ntsc = rgb2ntsc(map);
[dum,index] = sort(ntsc(:,1));
[Y,newmap] = cmpermute(X,map,index);
复制代码


相关命令: randperm

13.cmunique

功能:查找颜色映像表中特定的颜色及相应的图像。语法:


[Y,newmap] = cmunique(X,map) 
[Y,newmap] = cmunique(RGB)
[Y,newmap] = cmunique(I)
复制代码


相关命令:gray2ind, rgb2ind

14.col2im

功能:将矩阵的列重新组织到块中。语法:


A = col2im(B,[m n],[mm nn],block_type)A = col2im(B,[m n],[mm nn])
复制代码


相关命令:blkproc, colfilt, im2col, nlfilter

15.colfilt

利用列相关函数进行边沿操作。语法:


B = colfilt(A,[m n],block_type,fun)B = colfilt(A,[m n],block_type,fun,P1,P2,...)B = colfilt(A,[m n],[mblock nblock],block_type,fun,...) B = colfilt(A,'indexed',...)
复制代码


相关命令:blkproc, col2im, im2col, nlfilter

16.colorbar

功能:显示颜色条。语法:


colorbar('vert') 
colorbar('horiz')
colorbar(h)
colorbarh = colorbar(...)
复制代码


举例


I = imread('blood1.tif'); 
h = fspecial('log');I2 = filter2(h,I);imshow(I2,[]), colormap(jet(64)), colorbar
复制代码


17.conv2

功能:进行二维卷积操作。语法:


C = conv2(A,B)C = conv2(hcol,hrow,A) C = conv2(...,shape)
复制代码


举例


A = magic(5)
A =17 24 1 8 15
23 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9B = [1 2 1;0 2 0;3 1 3]
B =1 2 10 2 03 1 3C = conv2(A,B)
C =17 58 66 34 32 38 1523 85 88 35 67 76 1655 149 117 163 159 135 6779 78 160 161 187 129 5123 82 153 199 205 108 7530 68 135 168 91 84 933 65 126 85 104 15 27
复制代码


相关命令:filter2

18.convmtx2

功能:计算二维卷积矩阵。语法:


T = convmtx2(H,m,n) 
T = convmtx2(H,[m n])
复制代码


相关命令:conv2

19.convn

功能:计算 n 维卷积。


语法:


C = convn(A,B)C = convn(A,B,shape) 
复制代码


相关命令: conv2

20.corr2

功能:计算两个矩阵的二维相关系数。


语法:


r = corr2(A,B) 
复制代码


相关命令: std2

21.dct2

功能:进行二维离散余弦变换。语法:


B = dct2(A)B = dct2(A,m,n)B = dct2(A,[m n])
复制代码


举例


RGB = imread('autumn.tif'); I = rgb2gray(RGB);J = dct2(I);imshow(log(abs(J)),[]), colormap(jet(64)), colorbar
复制代码



J(abs(J) < 10) = 0;K = idct2(J)/255; imshow(K)
复制代码



相关命令:fft2, idct2, ifft2

22.dctmtx

功能:计算离散余弦变换矩阵。语法:


D = dctmtx(n) 
复制代码


相关命令: dct2

23.dilate

功能:放大二进制图像。语法:


BW2 = dilate(BW1,SE)BW2 = dilate(BW1,SE,alg) BW2 = dilate(BW1,SE,...,n)
复制代码


举例


BW1 = imread('text.tif'); SE = ones(6,2);BW2 = dilate(BW1,SE); imshow(BW1)figure, imshow(BW2)
复制代码



相关命令:bwmorph, erode

24.dither

功能:通过抖动增加外观颜色分辨率,转换图像。语法:


X = dither(RGB,map) BW = dither(I)
复制代码


相关命令:rgb2ind

25.double

功能:转换数据为双精度型。语法:


B = double(A)
复制代码


举例


A = imread('saturn.tif'); B = sqrt(double(A));
复制代码


相关命令:im2double, im2uint, uint8


参考文献:


[1] Rafael C. Gonzalez, Richard E. Woods, and Steven L. Eddins. 2003. Digital Image Processing Using MATLAB. Prentice-Hall, Inc., USA.


[2] 阮秋琦. 数字图像处理(MATLAB版)[M]. 北京:电子工业出版社, 2014.


[3] 冈萨雷斯. 数字图像处理(第三版)[M]. 北京:电子工业出版社, 2011.

发布于: 刚刚阅读数: 4
用户头像

timerring

关注

公众号【AIShareLab】 2022-07-14 加入

他日若遂凌云志

评论

发布
暂无评论
Matlab常用图像处理命令108例(二)_图像处理_timerring_InfoQ写作社区