• 数字图像处理及MATLAB实现实验一


    一、图像文件的读写

    1.colorbar函数将颜色条添加到坐标轴对象中

    %colorbar函数将颜色条添加到坐标轴对象中
    RGB=imread('drum.bmp')  %图像读入
    I=rgb2gray(RGB);    %把RGB图像转化为灰度图像
    h=[1 2 1;0 0 0;-1 -2 -1];   
    I2=filter2(h,I);    %使用指定的滤波器h对I进行滤波,结果保存在I2中
    imshow(I2,[]),colorbar('vert')  %将颜色条添加到坐标轴的对象中
                                    %vert--垂直,horiz--水平

     

    2.warp将图像图像进行文理映射

    %warp将图像图像进行文理映射
    A=imread('drum.bmp');
    I=rgb2gray(A);
    [x,y,z]=sphere;
    warp(x,y,z,I);  %用warp函数将图像作为纹理进行映射

    3.subimage函数实现在一个图形窗口内显示多幅图像

    %subimage函数实现在一个图形窗口内显示多幅图像
    RGB=imread('drum.bmp');
    I=rgb2gray(RGB);
    subplot(1,2,1),subimage(RGB) 
    subplot(1,2,2),subimage(I)  %subplot(1,2,1)是指一个1行2列的图中从左到右从上到下第1个位置

    二、图像处理的基本操作

    1)图像代数运算

    1.imadd函数实现两幅图像的相加或者给一幅图像加上一个常数

    I=imread('drum.bmp');
    J=imadd(I,100); %给图像增加亮度
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    2.imsubtract函数实现将一幅图从另外一幅图像中减去,或者从一幅图像中减去一个常数

    I=imread('drum.bmp');
    J=imsubtract(I,100); %给图像减少亮度
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    3.immultiply函数实现两幅图像的相乘或者一幅图像亮度的缩放

    I=imread('drum.bmp');
    J=immultiply(I,0.5); %给图像进行亮度缩放
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    4.imdivide函数实现两幅图像的除法或者一幅图像或一幅图像亮度的缩放

    I=imread('drum.bmp');
    J=imdivide(I,0.5); %给图像进行亮度缩放
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

     

    2)图像空间域操作

    1.imresize函数实现图像的缩放

    I=imread('drum.bmp');
    J=imresize(I,5); %给图像进行缩放
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    2.imrotate函数实现图像的旋转

    I=imread('drum.bmp');
    J=imrotate(I,45,'bilinear'); %对图像进行旋转 
    %围绕图像中心旋转angle度,正表示逆时针旋转,负表示正时针旋转。
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    3.imcrop函数实现图像的剪切

    I=imread('drum.bmp');
    J=imcrop(I,[75 68 130 112]); %对图像进行剪切 
    %[xmin,ymin,wight,height]
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    3)特定区域处理

    1.roipoly函数用于选择图像中的多边形区域

    I=imread('drum.bmp');
    c=[200 250 278 248 199 172];
    r=[21 21 75 121 121 75];
    J=roipoly(I,c,r);
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);

    2.roicolor函数是对RGB图像和灰度图像实现按灰度值或亮度值选择区域进行处理

    a=imread('drum.bmp');
    I=rgb2gray(a);
    J=roipoly(I,128,225);   %按灰度值选择的区域
    subplot(1,2,1),imshow(I);
    subplot(1,2,2),imshow(J);

    3.poly2mask函数转化指定的多边形区域为二值掩模

    x=[63 186 54 190 63];
    y=[60 60 209 204 60];
    I=poly2mask(x,y,256,256); %转化指定的多边形区域为二值掩模
    imshow(I);
    hold on  %打开图形保持功能
    plot(x,y,'b','LineWidth',2);
    %plot(x,y,'r','limewidth',4);线条粗细;r-红色,g-绿色,b-蓝色,c-青色,m-紫色,k-黑色,w-白色,y-黄色
    hold off  %关闭图形保持功能

    4.roifilt2函数实现区域滤波

    a=imread('drum.bmp');
    I=rgb2gray(a);
    c=[200 250 278 248 199 172]
    r=[21 21 75 121 121 75]
    BW=roipoly(I,c,r);  %roipoly函数用于选择图像中的多边形区域
    h=fspecial('unsharp');  %unsharp为对比度增强滤波器
    J=roifilt2(h,I,BW); %区域滤波
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

     5.roifill函数实现对特定区域进行填充

    a=imread('drum.jpg');
    I=rgb2gray(a);
    c=[200 250 278 248 199 172]
    r=[21 21 75 121 121 75]
    J=roifill(I,c,r);   %roifill函数实现对特定区域进行填充
    subplot(1,2,1),imshow(I)
    subplot(1,2,2),imshow(J)

    4)图像变换

    1.fft2函数和ifft2函数分别是计算二维的快速傅里叶变换和反变换

    f=zeros(100,100);
    f(20:70,40:60)=1;
    imshow(f);
    F=fft2(f);
    F2=log(abs(F));
    imshow(F2),colorbar
    subplot(1,2,1),imshow(f)

    2.edge函数用于提取图像的边缘,radon函数用来计算指定方向上图像矩阵的投影

    % 2.edge函数用于提取图像的边缘,radon函数用来计算指定方向上图像矩阵的投影
    RGB=imread('drum.bmp');
    I=rgb2gray(RGB);
    BW=edge(I)
    figure,imshow(BW)
    theta=0:179;    %角度从1取到179,这样randon就得到了不同角度下的径向上的图像场强值,即R矩阵。
    [R,xp]=radon(BW,theta); %图像矩阵的投影  %R是点的数量的多少,xp是对应的坐标位置,xp只是对应的角度,跟theta一样
    figure,imagesc(theta,xp,R);colormap(hot);
    xlabel('	heta(degrees)');  %对x轴加标题
    ylabel('xprime');  %对y轴加标题
    title('R_{	heta}(xprime)');   %对图像加标题
    colorbar  %颜色映射

  • 相关阅读:
    CF11C How Many Squares?
    CF3D Least Cost Bracket Sequence
    P4106 [HEOI2014]逻辑翻译
    吉大第二届青云杯复赛第6题
    2017六省联考部分题目整理【期末考试,寿司餐厅,组合数问题,分手是祝愿】
    CF578D LCS Again
    P5072 [Ynoi2015]盼君勿忘
    P3232 [HNOI2013]游走
    P6154 游走
    P4648 [IOI2007] pairs 动物对数
  • 原文地址:https://www.cnblogs.com/zhying99/p/10569498.html
Copyright © 2020-2023  润新知