Matlab基础:关于图像的基本操作

--

%% 学习目标:学习关于图像的基本操作

%% 通过抖动来增强图像的的色彩对比度
clear all;
close all;
I = imread(‘cameraman.tif‘);%读取灰度图像
BW = dither(I);%通过抖动转换为二值图像来增强图像的色彩对比度
subplot(1,2,1);%将多个图片显示在同一个窗口,subplot(m,n,p)。
imshow(I);
subplot(1,2,2);
imshow(BW);

%% 获取图像信息
clear all;
close all;
info = imfinfo(‘trees.tif‘,‘tif‘);%获取图像信息
disp(info);%输出图像信息

%% 改变图像格式
clear all;
close all;
RGB = imread(‘trees.tif‘,‘tif‘);%读取一个RGB图片
imwrite(RGB,‘Mytrees.png‘,‘png‘);%将tif格式图片转换为png格式
tupian = imread(‘Mytrees.png‘);
figure;
imshow(tupian);

%% 读取图像中的某些帧
clear all;
close all;
I1 = imread(‘mri.tif‘,5);%读取第5帧
I20 = imread(‘mri.tif‘,25);
figure;
subplot(1,2,1);
imshow(I1);
subplot(1,2,2);
imshow(I20);

%% which mri.tif 查看图像位置

%% 同时显示多帧图像
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);%同时显示多帧图像

%% 将多帧图像转换为电影
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);%显示动画

%% 图像相加  如果大于255就设置为255
clear all;
close all;
I = imread(‘rice.png‘);
J = imread(‘cameraman.tif‘);
K = imadd(I,J,‘uint16‘);
imshow(K,[]);

%% 图像相减,小于0则设置为0,  0到255  减去一个常数颜色更深
clear all;
close all;
I = imread(‘cameraman.tif‘);
J = imsubtract(I,90);%减去90  减的越大,图像越暗(0表黑色嘛)
imshow(J);

%% 图像相乘
clear all;
close all;
I = imread(‘cameraman.tif‘,‘tif‘);
J = immultiply(I,0.6);%乘0.6(小于1),变暗
subplot(121);
imshow(I);
subplot(122);
imshow(J);

%% 图像相除  维数要一样
clear all;
close all;
X = uint8([222 50 21; 56 77 89]);%X and Y 都是2*3的矩阵
Y = uint8([66 66 66; 66 66 66]);
Z = imdivide(X,Y);% X/Y
disp(Z);

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

%% fspecial:用于建立预定义的滤波算子或者说产生预定义滤波器

原文:https://blog.csdn.net/KimLK/article/details/78064384

--

原文地址:https://www.cnblogs.com/Ph-one/p/11516811.html

时间: 2024-08-07 00:07:23

Matlab基础:关于图像的基本操作的相关文章

MATLAB中图像的基本操作

MATLAB中图像的基本操作 1.读取.显示图片 MATLAB中提供了immread()与imshow()函数读取和显示图片.其中读取函数imread()原型: imread: A = imread(filename, fmt) A是结构体名,用来存储读入的图像数据.filename是读取的文件名,文件名要用”括起来.fmt是读取文件的类型如:jpg.png等等,这个参数可以不输入,由MATLAB自动判断. 显示函数imshow()原型: imshow: imshow(I) I为读取后保存在MA

数字图像处理学习笔记之一 DIP绪论与MATLAB基础

写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同时学习过程中会参考网络学习资源.对于数字图像处理的学习不可能仅仅依靠作者所写的这一系列笔记,而是需要花时间和精力学习,本文只可作参考和交流之用.由于涉及此学科不久,在学习过程中难免存在错误,请读者不吝赐教. 数字图像处理绪论 数字图像处理(DIP)的研究目标和处理对象: DIP的研究目标是获取信息,处理对象是

Matlab基础应用之作图

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作.这类操作将图形的每个图形元素(如坐标轴.曲线.文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分. 在此介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各

Matlab在读取图像时怎么实现手动选择图像

平时看的一些关于图像处理的文献通常要在matlab里面写一下,以便加深对这个算法的理解,当然写好以后需要图像来测试,以前我常常在 path='图像所在的路径'; img=imread(path+图像的名字); 在imread函数中进行不断修改图像的名字,以便测试不同的图像对于该算法的效果如何. 想必大家也是常常这样做实验吧,今天突然想,这样一直改名字多麻烦多浪费时间,我觉得像Matlab这么强大的软件肯定提供这样的函数给用户,因为每个软件都要考虑用户体验的哈! 在网上搜了很久没找到非常好的答案,

Matlab实现:图像边缘提取

1. 边缘提取算法 方法一:一阶微分算子 Sobel算子 Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,Sobel算子对边缘定位不是很准确,图像的边缘不止一个像素. Roberts算子 Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确. Prewitt算子 Prewitt算子检测方法对灰度渐变和噪声较多的图像处理效果较好.但边缘较宽,而且间断点多. Canny算子 Canny算子是目前边

matlab 修改rbg图像中指定范围内像素点的rgb值

数组名是数组的首地址,就是数组中的第一个元素的地址,是常量.常量是不能值在=的左边的.数组和指针的区别在于,指针是变量,是用来存储指向数据的地址的变量,而数组名是常量.一般情况下申明一个数组,比如char  a[10]; 之后  数组名a都是数组的首地址,是一个地址常量.但是在函数申明的形参列表中除外,比如: int  fo(char []); 在这种情况下的申明与 int  fo(char a[]); int  fo(char *a); 是等价的,就是说在这种情况下,就算你写的是数组的形式,编

使用matlab批量处理图像后在指定文件夹存储

使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jpg'); N=length(Files); Names={}; Images={}; for k=1:N Names{k}=Files(k).name; Images{k}=imread(['D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\' Names{k}]);

MATLAB中的图像类型

MATLAB中的图像类型 1. RGB 图像 RGB 图像又称为真彩图像,它是利用 R. G. B 三个分量标识一个像素的颜色, R. G.B 分别代表红.绿.蓝 3 种不同的颜色,通过三基色可以合成出任意颜色. 所以对一个尺寸维 n×m 的彩色图像来说,在 MATLAB 中则存储一个 n×m×3 的多维数据数组,其中数组中的元素定义了图像中每一个像素的红.绿.蓝颜色值. RGB 图像不使用调色板,每一个像素的颜色由存储在相应位置的红.绿.蓝颜色分量的组合来确定. 红.绿.蓝分量分别占用 8 位

OpenCV 基础知识------图像创建、访问、转换

cvCreateImage函数-- Cxcore数组操作 创建头并分配数据 IplImage* cvCreateImage( CvSize size, int depth, int channels ); size 图像宽.高. depth 图像元素的位深度,可以是下面的其中之一: IPL_DEPTH_8U - 无符号8位整型 IPL_DEPTH_8S - 有符号8位整型 IPL_DEPTH_16U - 无符号16位整型 IPL_DEPTH_16S - 有符号16位整型 IPL_DEPTH_32