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、读⼊⼀幅彩⾊图像,把彩⾊图像变换为灰度图像和⼆值图像,并在同⼀个窗⼝内利⽤⼦窗⼝⽅式来显⽰彩⾊图像、灰度图像和⿊⽩图像,对每⼀幅图像标注⽂字标题。
>> 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 =
15
3、读⼊⼀幅图⽚,⾸先转换为灰度图像,然后利⽤ double 和 uint8 数据类型转换函数将图像的数据类
型进⾏转换,并显⽰转换后的结果,并分析结果出现的原因。
>> 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 是原图像的像素值。分别给出六种情况的变换图像,并予以标题标注。
>>%灰度图像线性灰度变换
>> 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);用subplot函数
>>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、读⼊⼀幅彩⾊图像,⾸先将其转换为灰度图像,然后对其分段线性变换。
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 函数对其进⾏灰度变化,实现图像整体变亮、整体变暗,在同⼀个窗⼝内分别显⽰,并标注⽂字标题。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论