Matlab图像处理基本操作及一些滤波算法

由于需要frost滤波进行滤波,一通查找到了matlab版本,以前电脑上有matlab软件,但是一直没用到,现在东西好不容易找到了,就搜了下相关教程,整理一个博客。感觉matlab语言和python语言很多类似操作,所以敲起代码来有种“春风得意马蹄疾”的感觉,废话不多说,上代码。下面代码matlab入门没啥问题…

算法下载地址如下(如果不需要可以忽略下载,用matlab中自带的算法):
different filters:
-Mean filter.
-Frost filter.
-Modified frost filter(added thresholds).
-Lee filter(Using Masks, ENL ect).
下载地址:
https://download.csdn.net/download/weixin_42727069/12322147

1-frost滤波使用

% 1-frost滤波使用*************************************************
clear all;
close all;
I=im2double(imread('F:\datas\opencvDemoData\560.tiff'));
%%I2=im2double(I)%%转换为double类型,避免滤波出错
%%BW = dither(I);%通过抖动转换为二值图像来增强图像
BW = FrostFilter(I, 7,2.2);%%(I, 4,2.2)% frost滤波使用
subplot(121);
imshow(I);
subplot(122);
imshow(BW)

2-获取图像信息

//2-获取图像信息***********************************
clear all;
close all;
%方法一:
info = imfinfo('F:\datas\opencvDemoData\560.tiff','tiff')%直接在命令行显示图片信息
%方法二:
imtool('F:\datas\opencvDemoData\560.tiff')%弹出窗口显示图片信息

3-改变图片格式

%%3-改变图片格式***************************************
clear all;
close all;
RGB = imread('F:\datas\opencvDemoData\ren.jpg','jpg');
imwrite(RGB,'F:\datas\opencvDemoData\ren.png','png');
tupian = imread('F:\datas\opencvDemoData\ren.png');
figure;
imshow(tupian)

4-读取图片中的某一帧

%%4-读取图片中的某一帧*********************************
clear all;
close all;
I1 = imread('mri.tif',5);%读取第5帧,mri.tif为matlab自带的样例图片
I2 = imread('mri.tif',25);%读取第25帧
figure;
subplot(121);
imshow(I1);
subplot(122);
imshow(I2);
set(gcf,'position',[200,200,500,300]);
%% which mri.tif %%查看mri.tif图像位置

5-同时显示多帧图像

%%5-同时显示多帧图像***************
clear all;
close all;
mri=uint8(zeros(128,128,1,25));
for i = 1:25 %25帧
	[mri(:,:,:,i),map] = imread('mri.tif',i);
end
montage(mri,map);%同时显示多帧图像

6-将多帧图像转换为电影动图

%%6-将多帧图像转换为电影动图*******
clear all;
close all;
mri = uint8(zeros(128,128,1,25));
for i =1:25
	[mri(:,:,:,i),map] = imread('mri.tif',i);
end
mov = immovie(mri,map);
implay(mov);

7-图像相加

%%7-图像相加,如果大于255 就设置为255*******
clear all;
close all;
I = imread('rice.png');
J=imread('cameraman.tif');
K = imadd(I,J,'uint16');
imshow(K,[]);
set(gcf,'position',[400,400,600,600]);

8-图像相减

%%8-图像相减 ,小于0则设置为0,减去一个常数颜色更深
clear all;
close all;
I = imread('cameraman.tif');
J = imsubtract(I,90);
imshow(J);

9-图像相乘

%%9-图像相乘
clear all;
close all;
I = imread('cameraman.tif','tif');
J = immultiply(I,0.6);%%乘以小于1的数,图片变暗
subplot(121);
imshow(I);
subplot(122);
imshow(J);

10-图像的除

%%10-图像的除
clear all;
close all;
X = uint8([222,50,21;56,77,89]);
Y = uint8([66,66,66;66,66,66]);
Z = imdivide(X,Y)

11-两幅图像的绝对差异

%%11-两幅图像的绝对差异
clear all;
close all;
I = imread('cameraman.tif');
J = uint8(filter2(fspecial('gaussian'),I));%对图像进行滤波
K = imabsdiff(I,J);%获取滤波图像和之前图像的差异
subplot(131);
imshow(I);
subplot(132);
imshow(K);
subplot(133);
imshow(K,[]);%加[]是为了显示清晰

你可能感兴趣的:(Matlab,matlab,算法)