图像处理用matlab还是python_python和matlab对比

2022-11-09 17:36:49 浏览数 (1)

由于需要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

0 人点赞