由于需要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:datasopencvDemoData560.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:datasopencvDemoData560.tiff’,’tiff’)%直接在命令行显示图片信息
%方法二:
imtool(‘F:datasopencvDemoData560.tiff’)%弹出窗口显示图片信息
3-改变图片格式
%%3-改变图片格式***************************************
clear all;
close all;
RGB = imread(‘F:datasopencvDemoDataren.jpg’,’jpg’);
imwrite(RGB,’F:datasopencvDemoDataren.png’,’png’);
tupian = imread(‘F:datasopencvDemoDataren.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 %帧
[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-图像的除
%-图像的除
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-两幅图像的绝对差异
%-两幅图像的绝对差异
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,[]);%加[]是为了显示清晰
原文链接:https://blog.csdn.net/weixin_42727069/article/details/105456619
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186092.html原文链接:https://javaforall.cn