课设-数字图像处理GUI的设计第四天

数字图像处理GUI的设计第四天

1 翻转

1.1 上下翻转
1.1.1 ndims函数

判断是否是彩色图,也就是等于3时,是彩色图,原本参考的大佬代码是比较老的版本,用的isrgb函数,但是我的2018a版本删除了,有报错,所以改成了ndiums函数。

ndims(handles.img) == 3
1.1.2 flipud函数

实现矩阵的上下翻转

flipud(X);
1.1.3 翻转后的图像

代码:

axes(handles.axes2);
x=(handles.img);
if(ndims(handles.img) == 3)
    for k=1:3
        y(:,:,k)=flipud(x(:,:,k));
    end
    imshow(y);
else
    x=(handles.img);
    y=flipud(x);
    imshow(y);
end

图像:
课设-数字图像处理GUI的设计第四天_第1张图片

1.2 左右翻转
1.2.1 fliplr函数

矩阵的左右翻转

fliplr(X)
1.2.2 翻转后的图像

代码:

function leftright_Callback(hObject, eventdata, handles)
axes(handles.axes2);
x=(handles.img);
if(ndims(handles.img) == 3)
    for k=1:3
        y(:,:,k)=fliplr(x(:,:,k));
    end
    imshow(y);
else
    x=(handles.img);
    y=fliplr(x);
    imshow(y);
end

图像:
课设-数字图像处理GUI的设计第四天_第2张图片

1.3 旋转角度
1.3.1 imrotate函数

旋转图像函数

B=imrotate(A,angle)
B=imrotate(A,angle,method)
B=imrotate(A,angle,method,bbox)
gpuarrayB=imrotate(gpuarrayA,)

常用的就是B=imrotate(A,angle),旋转angle角度
B=imrotate(A,angle,method)旋转任意角度,使用method算法,例如‘nearest’(最临近插值)也是默认值,'bilinear’双线性,'bicubic’双三次。

1.3.2 代码
%左转90°
axes(handles.axes2);
x=(handles.img);
y=imrotate(x,90);
imshow(y);
%右转90°
axes(handles.axes2);
x=(handles.img);
y=imrotate(x,-90);
imshow(y);
axes(handles.axes2);
prompt={'请输入旋转角度:'};
defans={'30'};
p=inputdlg(prompt,'输入角度',1,defans);
p1=str2num(p{1});
y=imrotate(handles.img,p1);
imshow(y);

课设-数字图像处理GUI的设计第四天_第3张图片

3 噪声

3.1 imnoise函数

添加噪声污染图像

g = imnoise(I,type)
g = imnoise(I,type,parameters)
g = imnoise(I,‘gaussian’,m,v)
g = imnoise(I,‘localvar’,V)
g = imnoise(I,‘localvar’,image_intensity,var)
g = imnoise(I,‘poisson’)
g = imnoise(I,‘salt & pepper’,d)
g = imnoise(I,‘speckle’,v)
3.2 高斯噪声

代码:

axes(handles.axes2);
prompt={'输入参数1:','输入参数2'};
defans={'0','0.02'};
p=inputdlg(prompt,'输入参数',1,defans);
p1=str2num(p{1});
p2=str2num(p{2});        
y=imnoise(handles.img,'gaussian',p1,p2);
imshow(y);
handles.noise_img=y;
guidata(hObject,handles);

课设-数字图像处理GUI的设计第四天_第4张图片

3.3 椒盐噪声
prompt={'输入参数1:'};
defans={'0.02'};  
p=inputdlg(prompt,'输入参数',1,defans);    
p1=str2num(p{1});       
axes(handles.axes2);
x=(handles.img);
y=imnoise(x,'salt & pepper',p1);               
imshow(y);
handles.noise_img=y;
guidata(hObject,handles);

课设-数字图像处理GUI的设计第四天_第5张图片

3.4 乘性噪声

axes(handles.axes2);
prompt={'输入参数1:'};
defans={'0.02'};
p=inputdlg(prompt,'输入参数',1,defans);
p1=str2num(p{1});
y=imnoise(handles.img,'speckle',p1);
imshow(y);
handles.noise_img=y;
guidata(hObject,handles);

课设-数字图像处理GUI的设计第四天_第6张图片

你可能感兴趣的:(学校实验)