MATLAB图像处理

时间:2024-10-09 07:05:31
%% 显示图片索引和灰度图像 map=imread('')%读取图片文件 image1=rgb2gray(map)%灰度化 subplot(3,4,1) imshow(map)%显示图片文件 title("原图") subplot(3,4,2) imshow(image1) title("灰度化") %% 利用膨胀函数平移图像 se = translate(strel(1), [30 30])%将一个平面化元素分别向下和向右移动30个位置 image2 = imdilate(map, se)%利用膨胀函数平移图像 subplot(3,4,3) imshow(image2) title("平移") %% 水平翻转和上下翻转 image3 = fliplr(map)%图像水平镜像 left/right image4 = flipud(map)%图像垂直镜像 up/down subplot(3,4,4) imshow(image3) title("水平镜像") subplot(3,4,5) imshow(image4) title("垂直镜像") %% 图像旋转 image5 = imrotate(map, 30, 'bilinear', 'crop')%双线性插值法将图像逆时针旋转30°,并裁减图像,使其和原图像大小一致 subplot(3,4,6) imshow(image5) title("逆时针旋转30°") %% 图像裁剪 image6 = imcrop(map, [100 100 200 200]);%从(x1, y1)处裁剪,到(x1+x2, y1+y2)处停止 subplot(3,4,7) imshow(image6); title("裁剪") %% 图像轮廓 image7 = image1 subplot(3,4,8) imcontour(image7, 3) title("图像轮廓") %% 噪声滤波 image2 = imnoise(image1, 'salt & pepper',0.02);%添加椒盐噪声 subplot(3,4,9); imshow(image2); title("添加椒盐噪声") image3 = medfilt2(image2);%使用3*3的邻域窗的中值滤波 subplot(3,4,10); imshow(image3); title("中值滤波") %% 生成彩色图片 R = uint8(218*ones(512, 512)); G = uint8(67*ones(512, 512)); B = uint8(74*ones(512, 512)); image = cat(3, R, G, B); subplot(3,4,11); imshow(image); title("生成彩色图像")