admin管理员组

文章数量:819705

python 和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).

下载地址:

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,[]);%加[]是为了显示清晰

原文链接:

本文标签: python 和matlab处理图像上的优劣