Matlab图像处理基本函数

一、学习

1、图像的读取、显示。

%读取
a=imread('1.jpg');
%显示
imshow(a);

2、imfinfo函数用于显示图像的详细信息,size函数显示图像尺寸大小。
3、title给图像加标题。
4、subplot把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。

suplot(2,2,1);%把图像分成2*2的小窗口,第三个数字1是表示第一块。
suplot(2,2,2);%把图像分成2*2的小窗口,第三个数字2是表示第二块。

5、彩色图像变换为灰度图像。

a=imread('1.jpg');
b = rgb2gray(a);

6、通过阈值化方法把图像转换为二值图像。

a=im2bw(b);

7、imadjust 函数用于数字图像的灰度或颜色调整。

二、实践

1、读入一幅彩色图像,把彩色图像变换为灰度图像和二值图像,并在同一个窗口内利用子窗口方式来显示彩色图像、灰度图像和黑白图像,对每一幅图像标注文字标题。
Matlab图像处理基本函数_第1张图片

>> a=imread('1.jpg');%读入图像
>> subplot(3,1,1);%划分窗口
>> imshow(a) 
>> title('原图');
>> b=rgb2gray(a);%转化成为灰度图像
>> subplot(3,1,2)
>> imshow(b) 
>> title('灰度图像');
>> c=im2bw(a); %转化成二值图像
>> subplot(3,1,3) 
>> imshow(c) 
>> title('二值图像');

2、读入一幅彩色图片,利用 imfinfo 函数显示其详细信息,利用 size()函数显示其尺寸大小,并和 imfinfo
显示的结果进行对照。

>> imfinfo 1.jpg

ans = 

           Filename: '1.jpg'
        FileModDate: '17-3月-2021 14:51:12'
           FileSize: 24675
             Format: 'jpg'
      FormatVersion: ''
              Width: 1200
             Height: 800
           BitDepth: 24
          ColorType: 'truecolor'
    FormatSignature: ''
    NumberOfSamples: 3
       CodingMethod: 'Huffman'
      CodingProcess: 'Sequential'
            Comment: {}

>> size('1.jpg')

ans =

     1     5

3、读入一幅图片,首先转换为灰度图像,然后利用 double 和 uint8 数据类型转换函数将图像的数据类
型进行转换,并显示转换后的结果,并分析结果出现的原因。
Matlab图像处理基本函数_第2张图片

>> a=imread('1.jpg');
>> b=rgb2gray(a);
>> subplot(1,2,1)
>> c=double(b);
>> imshow(c);
>> title('Double类型数据');
>> d=uint8(b);
>> subplot(1,2,2)
>> imshow(d);
>> title('uint8类型数据');

4、首先将一幅彩色图像变为一幅灰度图像,然后对其进行线性灰度变换,s=T®=a*r+b,其中 S 是变换后图像的像素值,r 是原图像的像素值。分别给出六种情况的变换图像,并予以标题标注。
Matlab图像处理基本函数_第3张图片

>> %灰度图像线性灰度变换
>> a=imread('1.jpg');
>> b=rgb2gray(a);
>> [oriHist,oriX] = imhist(b);
>> 
>>%以下是六幅图像的变化参数
>> %m=1,n=0
>> m=1;
>> n=0;
>> gray1=b*m+n;
>> [g1Hist,g1X]=imhist(gray1);
>> 
>> %m=1;n=40
>> m=1;
>> n=40;
>> gray2=b*m+n;
>> [g2Hist,g2X]=imhist(gray2);
>> 
>> %m=1,n=-40;
>> m=1;
>> n=-40;
>> gray3=b*m+n;
>> [g3Hist,g3X]=imhist(gray3);
>> 
>> %m=1.5,n=0
>> m=1.5;
>> n=0;
>> gray4=b*m+n;
>> [g4Hist,g4X]=imhist(gray4);
>> 
>> %m=0.6,n=0
>> m=0.6;
>> n=0;
>> gray5=b*m+n;
>> [g5Hist,g5X]=imhist(gray5);
>> 
>> %m=-1,n=0
>> m=-1;
>> n=0;
>> gray6=b*m+n;
>> [g6Hist,g6X]=imhist(gray6);
>> 
>>%显示出来 
>> subplot(2,4,1);
>> imshow(a);
>> title('彩色图像');
>> subplot(2,4,2);
>> imshow(b);
>> title('灰度图像');
>> subplot(2,4,3);
>> imshow(gray1);
>> title('不变a=1,b=0');
>> subplot(2,4,4);
>> imshow(gray2);
>> title('整体变亮a=1,b=40');
>> subplot(2,4,5);
>> imshow(gray3);
>> title('整体变暗a=1,b=-40');
>> subplot(2,4,6);
>> imshow(gray4);
>> title('提高对比度a=1.5');
>> subplot(2,4,7);
>> imshow(gray5);
>> title('降低对比度a=0.6');
>> subplot(2,4,8);
>> imshow(gray6);
>> title('负片a=-1');

5、读入一幅彩色图像,首先将其转换为灰度图像,然后对其分段线性变换。
Matlab图像处理基本函数_第4张图片
Matlab图像处理基本函数_第5张图片

function [ b ] = Change( Image,fa,fb,ga,gb )
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
x = imread('1.jpg'); 
[m,n,c] = size(x);  
if(c>1)
    a=rgb2gray(x);
end
b=zeros(m,n);
a = double(a);  
k1 = ga/fa;     
k2 = (gb-ga)/(fb-fa);
k3 = (255-gb)/(255-fb);
for i=1:m
    for j=1:n
        if a(i,j)<fa
            b(i,j) = k1*a(i,j);
        elseif a(i,j)<fb
            b(i,j) = k2*(a(i,j)-fa)+ga;
        else
            b(i,j) = k3*(a(i,j)-fb)+gb;
        end
    end
end
b = uint8(b);  
end
 
 

>>fa = 80;fb = 120;
>>ga = 50;gb = 200;
>>Image='1.jpg';
>> b=Change(Image,fa,fb,ga,gb);
>> subplot(1,2,1);
>> imshow(Image);
>> title('原图');
>> subplot(1,2,2);
>> imshow(b);
>> title('变换后的图像');

6、读取一幅图像,利用 imadjust 函数对其进行灰度变化,实现图像整体变亮、整体变暗,在同一个窗口内分别显示,并标注文字标题。
Matlab图像处理基本函数_第6张图片

>> a=imread('1.jpg');
>> subplot(1,3,1);
>> imshow(a);
>> title('原图像');
>> b=imadjust(a,[0 1],[0.5 0.75]);
>> c=imadjust(a,[],[],0.6);
>> subplot(1,3,2);
>> imshow(b);
>> title('图像变暗');
>> subplot(1,3,3);
>> imshow(c);
>> title('图像变亮');

你可能感兴趣的:(图像处理)