登录论坛

查看完整版本 : [资料] Matlab图像处理入门教程(菜鸟级)更新中.....


yfl
2010-04-15, 20:53
1,图像的读入和显示:

(1)图像读入:A=imread('文件名',文件格式)
[X,map]=imread('文件名') %X代表索引图像矩阵,map为颜色映射表
(2)图像显示:image(A);
2. 图像写回
A=imwrite('文件名',文件格式)
[X,map]=imwrite('文件名')%注意,当只写文件名时,它应带有扩展名
3.获取图像信息
info=iminfo('文件名')



4.标准图像显示技术
(1)imshow(I,n)%显示灰度图像,n为灰度级数
(2)imshow(I,[low,high])%[low,high]为图像数据的值域(可为空[ ])
(3)imshow(BW)%显示二值图像
(4)imshow(X,map)%显示索引色图像

yfl
2010-04-15, 21:17
5.图像的运算

(1)Z=imadd(X,Y)%图像的加运算,X,Y是输入的两幅图像,其中一个可以是常数
(2)Z=imsubtract(X,Y)%图像的减运算,Y可以是常数
(3)Z=immiltiply(X,y)%图像的乘运算,Y也可以是常数
(4)Z=imdivide(X,y)%图像的除运算,Y也可以是常数

yfl
2010-04-15, 21:36
6.图像的类型转换

(1)RGB=ind2rgb(X,map)%索引图转换为真彩色图
(2)I=mat2gray(A)%将一个数据矩阵转换为灰度图
(3)I=rgb2gray(RGB)%将一副灰度图转换为真彩色图
(4)[X,map]=rgb2ind(RGB,n)%将RGB图转换为索引色图
(5)BW=im2bw(I,level)%将真彩色图或灰度图转换为二值图,level为阈值
BW=im2bw(X,map,level)%将索引色图转换为二值图
(6)I=ind2gray(X,map)%将索引色图转换为灰度图

yfl
2010-04-17, 13:21
7.傅里叶变换

(1)Y=fft2(x,m,n)%二维离散傅里叶快速变换,x为要进行傅里叶变换的矩阵,m、n是返回的变换矩阵Y的行数和列数。
(2)Y=ifft2(x,m,n)%二维离散傅里叶反变换
(3)Y1=fftshift(Y)%把傅里叶变换操作得到的结果中零频率成分移到矩阵中心,这样利于观察频谱。

yfl
2010-04-17, 13:29
8.离散余弦变换

(1)D=dct2(A,m,n)%二维离散余弦变换,A是输入图像,B是返回的DCT变换系数,m、n为D的行数和列数
(2)D=idct(A,m,n)%e二维离散余弦逆变换。
(3)D=dctmtx(n)%返回DCT变换矩阵

未注册
2010-04-17, 16:20
有高手能留个qq吗?

yfl
2010-04-17, 17:03
有高手能留个qq吗?

有问题请发帖交流。。。。。。

yfl
2010-04-23, 21:22
9.Radon变换

[R,xp]=radon(I,theta)%I为图像矩阵,theta为角度
I=iradon(R,thrta)%逆Radon变换

yfl
2010-04-23, 21:32
10.图像的增强(1)

(1)imhist(I)%显示一副图像的直方图
(2)J=histeq(I)%直方图均衡化
(3)J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)%调整图像灰度值
(4)J=adapthisteq(I)%有限对比自适应直方图均衡化
(5)S=decorrestretch(I)%去相关色度拉伸

qwe_88
2010-04-27, 23:57
我是刚学这个 谢谢 很好啊

acwyc
2010-05-01, 22:28
新手!!!回帖好习惯!!

boyzhou007
2010-05-06, 09:15
新手报道 学习了,不错不错

gluser
2010-05-07, 09:01
它们的作用是什么,主要应用在那方面,要是理解了这些,我觉得那就应该是质的飞跃

lingdang
2010-05-13, 14:29
受教了~~~~~~~

yfl
2010-05-14, 10:09
11.图像的增强(2)
B=imfilter(A,H,option1,option2,...)
A是输入图像,H是卷积核或相关核,option是一些可选参数。
注:权重矩阵称为卷积核,也称为滤波器。卷积核是相关核旋转180度得到的,可选参数参看help
其中H也用H=fspecial(type,parameters)可自定义

yfl
2010-05-14, 10:15
12.中值滤波器
B=medfilt2(A,[m,n])%A是输入的图像,[m,n]是邻域的大小

13.自适应滤波器
B=wiener2(A,[m,n])

yfl
2010-05-14, 10:26
14.图像的分析
P=impixel(I)%交互式获取图像像素值
P=impixel(I,c,r)%指定点坐标像素值,c、r为行坐标和列坐标
C=improfile(I,xi,yi,n,method)%创建图像强度曲线,n规定了计算图像强度点的个数,xi、yi规定了空间直线端点坐标,method是插值方法(nearest,bilinrar,bicubic)
imcontour(I,n,linespec)%显示图像数据的等值线图

yfl
2010-05-14, 10:31
15.图像的统计信息
B=mean(A)%计算A的均值
b=std2(A)%计算A的标准差
r=corr2(A,B)%A,B为输入二维矩阵,r是返回的协方差系数

mazo
2010-05-16, 14:24
支持一下 毕设正在做图像处理。。。

yangkunale
2010-05-18, 21:42
新手学习ing,看看

abcxwf
2010-05-24, 20:56
这个对我的毕设非常有帮助,谢谢楼主!

qqhou
2010-05-26, 21:54
1,图像的读入和显示:

(1)图像读入:A=imread('文件名',文件格式)
[X,map]=imread('文件名') %X代表索引图像矩阵,map为颜色映射表
(2)图像显示:image(A);
2. 图像写回
A=imwrite('文件名',文件格式)
[X,map]=imwrite('文件名')%注意,当只写文件名时,它应带有扩展名
3.获取图像信息
info=iminfo('文件名')



4.标准图像显示技术
(1)imshow(I,n)%显示灰度图像,n为灰度级数
(2)imshow(I,[low,high])%[low,high]为图像数据的值域(可为空[ ])
(3)imshow(BW)%显示二值图像
(4)imshow(X,map)%显示索引色图像

获取图像信息函数名为imfinfo

未注册
2010-05-30, 21:00
快点更新到 线性变化 啊

belldaisy
2010-07-01, 15:38
爱死作者了,正发愁什么也不会了,呵呵

liyinglr
2010-07-18, 11:15
谢谢楼主支持楼主继续上传

phyocean
2010-07-20, 14:58
谢谢楼主,很有用
:):)

xiaoks518
2010-07-28, 16:56
的确很不错的东西!!支持!!!!!!!!

未注册
2010-09-13, 14:39
谢谢。楼主辛苦了。期待·····

lzl0351
2010-09-26, 09:39
谢谢楼主分享!!!!!!!!!!

tryit1986
2010-09-26, 09:59
我按照你的输进去。第一个读图像的。怎么总说我的没有定义文件格式?

tannengzhi0504
2010-09-26, 17:24
很好很强大,我想学习

langqi
2010-10-04, 12:45
呵呵 不错 不错 不错

tannengzhi0504
2010-10-04, 22:10
楼主继续更新啊,我正在学习中,再支持一下!

mayachi
2010-10-16, 17:09
大家一起进步,加油加油

rqcugb
2010-10-25, 19:29
谢谢楼主了,呵呵,好东东

tianzhuxiner
2010-11-03, 21:09
您好,你知道三维图中的colorbar,会不会随一个参数而变,也就是说能不能表示旋转的角度,谢谢

tsz
2010-11-07, 22:03
我按照你的输进去。第一个读图像的。怎么总说我的没有定义文件格式?
可能你的图像位置没有输入正确。

Rwatermoon
2010-11-11, 14:56
很好的资料,对于我们这些菜鸟来说太实用不过了,十分感谢楼主

night
2010-11-12, 16:16
当年我也是选取的MATLAB的毕业论文,好怀念,楼主提供的很基础很实用

追风急流星
2010-11-13, 12:55
观摩学习啦,总结的不错

沧海一叶
2010-12-10, 11:06
我是刚学这个 谢谢 很好啊

jdx_2007
2010-12-22, 19:38
学习一下,,,,顶个!

炮白101
2011-01-07, 10:05
很有用,谢谢分享,以后会继续来看看

douding
2011-01-11, 14:45
辛苦了,楼主,很实用

wuwei
2011-01-11, 15:15
请教 图像开闭运算如何实现?腐蚀与膨胀运用那些函数?谢谢

dongfo
2011-01-20, 15:07
正要学,受教了,一定好好琢磨

singerbell
2011-01-27, 02:30
thanks, great guy.

lj8385174
2011-02-08, 21:57
安逸,谢谢,我是您的fans

wujishenlong
2011-02-28, 21:49
毕业设计做这个呗···

未注册
2011-03-14, 11:46
如何做一个图像的差分,为什么用Diff函数对图像进行差分,小于零的部分直接为零;IMHIst函数可以画出小于的部分不??

秀1214
2011-03-28, 15:59
好有用的东东 谢了 大侠

zxmdi
2011-03-28, 18:55
很好!谢谢!热心的楼主啊!

bonjiov
2011-04-07, 09:37
牛啊牛啊牛啊牛啊牛啊牛啊牛啊

qixin1227
2011-04-10, 20:55
楼主不是一般地给力啊!继续加油!可以给我们这些菜鸟提供好多方便之处!打心底地感谢楼主!

wushao52
2011-04-19, 22:48
我是刚学这个 谢谢 很好啊

housujuan
2011-04-27, 21:54
谢谢啊,刚学这个正用得上

gcunshan
2011-05-24, 18:43
:)这篇文章看得人赏心悦目呀,支持!

漫步公主
2011-05-25, 14:03
对我的课设很有帮助,感谢分享!;)

wk2325272
2011-05-25, 19:02
楼主很给力啊 谢谢你的无私奉献!!!!!!!!!

未注册
2011-06-06, 12:48
初用者,路过,挺有用的。

mzone616
2011-10-19, 15:20
不错 学习了~~;)

szhwzzj
2011-10-22, 13:53
我刚刚学习matlab 谢谢 很有用!

puyueming
2011-10-30, 08:20
对you !!!最大的支持

越挫叶勇
2011-11-01, 14:48
我是刚学这个 谢谢 很好啊

sw1986928
2011-11-01, 22:37
你好,你问你会关于hvs方面的吗

yqcqh
2011-12-03, 21:58
刚开始学,谢谢楼主!

water6517
2012-02-26, 23:24
请点击此主题中您想要回复的帖子右下角的快速回复图标,以便激活快速回复.

zhq7352503
2012-03-12, 13:27
我是刚学这个 谢谢 很好啊[/QUOTE]

lipeng
2012-04-07, 19:24
谢谢,最近做毕业设计,才发现自己什么也不会,赶紧来学习学习

2012-04-10, 10:54
不错。很有帮助。。。。

新手要努力
2012-04-18, 15:28
呀。。。虽然不在怎么懂,,得慢慢吃透啊:(

yangsuo123
2012-05-30, 16:43
比较基础 也很实用 谢谢楼主

289576724
2012-08-27, 16:31
:)不错不错,加点讲解就更好了

zzj脚踏实地
2012-11-21, 15:51
有做人脸检测和人脸识别的吗,可以多多交流啊

我爱佐罗
2012-11-21, 20:45
谢谢LZ very much

maybe2030
2012-11-23, 15:56
感觉这样的学术交流方式很受用啊!

勇敢的蜗牛
2013-01-04, 00:02
紧急求助:MATLAB 解决下列问题:
均质滚轮质量为20kg,其上绕有细绳,绳沿水平方向拉出,跨过无重滑轮B,系有质量为10kg的重物A,如图所示。如滚轮沿水平直线轨道只滚不滑,画出滚轮中心C的加速度、速度和位移曲线(在同一窗口中不同子图,未知数据由键盘输入)。
十万火急!!!!!谢谢!!!!!

lonerzf
2013-01-21, 14:19
在图像处理方面我现在还是是小菜鸟,这是好资料。谢谢楼主 。

大力水手
2013-01-24, 22:58
菜鸟来报到!帖子一定要珍藏!

鲁qzcm
2013-02-28, 17:20
谢谢楼主:):):)

2013-03-01, 13:47
Thanks a lot!

未注册
2013-03-06, 13:19
可能你的图像位置没有输入正确。
图像位置在哪里输入?不是只要输文件名?
>> A = imread('trees',jpg)
??? Undefined function or variable 'jpg'.

那谁家小谁
2013-04-15, 09:44
刚开始了解的表示看不太懂,。。。。。:confused:

zkj475720936
2013-05-05, 10:37
学习了,谢谢,好东西

dafengzhongxue
2013-05-06, 20:03
谢谢楼主~~~~~~

mydream_16
2013-05-13, 09:41
在做毕业设计 基于bp神经网络的手写数字识别系统 在特征提取编程时遇到难题不知楼主能否给与帮助 重心矩特征,投影特征,凹特征和穿线特征的相关程序 若能帮助 万分感谢!

ztmkadaj
2013-07-15, 10:24
学习了:):):):)

liept
2013-11-05, 16:51
很好的板块,我要好好学习

yinyanwuai
2013-11-13, 01:42
15.图像的统计信息
B=mean(A)%计算A的均值
b=std2(A)%计算A的标准差
r=corr2(A,B)%A,B为输入二维矩阵,r是返回的协方差系数
求矩阵A的均值应该是
a=mean2(A);或者a=mean(A( : ));吧??
b=mean(A);返回的应该是一个向量。

yusihuaww
2014-07-16, 08:17
谢谢楼主,是在是太好了,不错

weizaia
2015-01-23, 11:16
有关于视频的吗,谢谢

cqxurichard
2015-04-13, 22:14
11.图像的增强(2)
B=imfilter(A,H,option1,option2,...)
A是输入图像,H是卷积核或相关核,option是一些可选参数。
注:权重矩阵称为卷积核,也称为滤波器。卷积核是相关核旋转180度得到的,可选参数参看help
其中H也用H=fspecial(type,parameters)可自定义
very nice! thanks for sharing with us!

半夏803
2015-05-25, 16:43
楼主,你好,菜鸟报到,,请问图像的自相关函数怎么计算?怎么画图啊

2018-01-19, 20:08
刚入门,非常有帮助,谢谢!

江西胡萝卜
2018-05-08, 09:09
麻烦版主帮忙看一下这个程序问题出现在哪里 谢谢!


function [A_nm,zmlist,cidx,V_nm] = zernike(img,n,m)
% 功能:计算输入图像的Zernike矩
% 输入:img-灰度图像
% n-阶数
% 输出:V_nm-n阶的Zernike多项式,定义为在极坐标系中p,theta的函数
% cidx-表示虚部值
% A_nm-Zernike矩

if nargin>0
if nargin==1
n=0;
end
d=size(img);
img=double(img);
% 取步长
xstep=2/(d(1)-1);
ystep=2/(d(2)-1);
% 画方格
[x,y]=meshgrid(-1:xstep:1,-1:ystep:1);
circle1= x.^2 + y.^2;
% 提取符合circle1<=1的数
inside=find(circle1<=1);
% 构造size(d)*size(d)的矩阵
mask=zeros(d);
% 构造size(inside)*size(inside)的全为1的矩阵赋值给mask(inside)
mask(inside)=ones(size(inside));
% 计算图像的复数表示
[cimg,cidx]=clipimg(img,mask);
% 计算Z的实部和虚部
z=clipimg(x+1i*y,mask);
% 计算复数的模,sqrt(x,y),z=x+iy
p=0.9*abs(z);
% 计算复数z的辐角值(tanz)
theta=angle(z);
c=1;
for order=1:length(n)
n1=n(order);
if nargin<3
m=zpossible(n1);
end
for r=1:length(m)
V_nmt=zpoly(n1,m(r),p,theta);
% conj是求复数的共轭
zprod=cimg.*conj(V_nmt);
% (n1+1)/π*∑∑(zprod); 对于图像而言求和代替了求积分
A_nm(c)=(n1+1)*sum(sum(zprod))/pi;
zmlist(c,1:2)=[n1 m(r)];
if nargout==4
V_nm(:,c)=V_nmt;
end
c=c+1;
end
end
else
end

%%%%%子函数%%%%%
function [cimg,cindex,dim]=clipimg(img,mask)
%功能:计算复数的实部和虚部
dim=size(img);
cindex=find(mask~=0);
cimg=img(cindex);
return;

%%%%%子函数%%%%%
function [m]=zpossible(n)
% 功能:判断n是偶数还是奇数,是偶数时,m取0,2,4,6等,否则取奇数赋值m
if iseven(n)
m=0:2:n;
else
m=1:2:n;
end
return;

%%%%%子函数%%%%%
function [V_nm,mag,phase]=zpoly(n,m,p,theta)
%功能:计算Zernike矩多项式
R_nm=zeros(size(p)); % 产生size(p)*size(p)的零矩阵赋给R_nm
a=(n+abs(m))/2;
b=(n-abs(m))/2;
total=b;
for s=0:total
num=((-1)^s)*fac(n-s)*(p.^(n-2*s)); % (-1).-1*(n-s)!r.^(n-2*s)
den=fac(s)*fac(a-s)*fac(b-s); % s!*(a-s)!*(b-s)!
R_nm=R_nm + num/den; % R_nm是一个实数值的径向多项式
end
mag=R_nm; % 赋值
phase=m*theta;
V_nm=mag.*exp(1i*phase); % V_nm为n阶的Zernike多项式,定义为在极坐标系中p,theta的函数
return;

%%%%%子函数%%%%%
function [factorial]=fac(n)
%功能:求n的阶乘
maxno=max(max(n));
zerosi=find(n<=0); %取n小于等于0的数
n(zerosi)=ones(size(zerosi));
factorial=n;
findex=n;
for i=maxno:-1:2
cand=find(findex>2);
candidates=findex(cand);
findex(cand)=candidates-1;
factorial(cand)=factorial(cand).*findex(cand);
end
return;

function [verdict]=iseven(candy)
verdict=zeros(size(candy));
isint=find(isint(candy)==1);
divided2=candy(isint)/2;
evens=(divided2==floor(divided2));
verdict(isint)=evens;
return;

function [verdict]=isint(candy)
verdict = double(round(candy))==candy;
return;

一脸懵逼
2018-10-28, 21:59
请问楼主了解颜色处理这块吗,例如颜色传递

Boney
2019-04-30, 11:24
支持.....学习了.......