matlab图像处理小结Word下载.docx
- 文档编号:22026562
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:23.14KB
matlab图像处理小结Word下载.docx
《matlab图像处理小结Word下载.docx》由会员分享,可在线阅读,更多相关《matlab图像处理小结Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
B
1);
9.[A(1,
:
),
B
(1)]
circle2line(pt1,
pt2);
10.[A(2,
B
(2)]
circle2line(pt2,
pt3);
11.center
A\B;
12.r
norm(pt1'
-
center);
13.
14.function
[A,
B]
pt2)
15.%Effect:
cast
2
circles
equation
into
1
linear
equation:
16.%(a-x1)^2
+
(b-y1)^2
r^2
|
17.%
|==>
2(x1-x2)a
2(y1-y2)b
(x1^2
y1^2)
(y2^2
y2^2)
18.%(a-x2)^2
(b-y2)^2
19.%Inputs:
20.%pt1,
pt2:
[x1,
y1],
[x2,
y2]
21.%Outputs:
22.%A:
2[x1-x2,
y1-y2]
23.%B:
(x2^2
24.%Author:
25.A
2*(pt1
26.B
norm(pt1)^2
norm(pt2)^2;
closeall;
clear;
clc;
>
i=imread('
rice.png'
);
%>
imshow(i);
background=imopen(i,strel('
disk'
15));
i2=imsubtract(i,background);
figure,imshow(i2);
i3=imadjust(i2,stretchlim(i2),[01]);
figure,imshow(i3);
level=graythresh(i3);
bw=im2bw(i3,level);
figure,imshow(bw);
[labeled,numobjects]=bwlabel(bw,4);
graindata=regionprops(labeled,'
all'
i=imread('
background=imopen(i,strel('
i2=imsubtract(i,background);
i3=imadjust(i2,stretchlim(i2),[01]);
level=graythresh(i3);
bw=im2bw(i3,level);
[labeled,numobjects]=bwlabel(bw,4);
data=regionprops(labeled,'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%2006.6.2
r.jpg'
figure,imshow(i);
imgray=rgb2gray(i);
figure,imshow(imgray)
background=imopen(imgray,strel('
i2=imsubtract(imgray,background);
imnobord=imclearborder(bw,4);
figure,imshow(imnobord);
rgb_label=label2rgb(labeled,@spring,'
c'
'
shuffle'
figure,imshow(rgb_label);
graindata=regionprops(labeled,'
holdon;
fork=1:
numobjects
lab=sprintf('
%d'
k);
text(graindata(k).Centroid
(1),graindata(k).Centroid
(2),lab,'
Color'
k'
end
holdoff;
%剔除碎米粒
idxdown=find([graindata.Area]<
150);
%剔除碎米粒
little=ismember(labeled,idxdown);
figure,imshow(little);
[lab_little,num_little]=bwlabel(little,4);
rgb_little=label2rgb(lab_little,@spring,'
figure,imshow(rgb_little);
little_data=regionprops(lab_little,'
num_little
text(little_data(k).Centroid
(1),little_data(k).Centroid
(2),lab,'
graindata(idxdown,:
)=[];
%剔除连接米粒
idxup=find([graindata.Area]>
250);
%剔除连接米粒
big=ismember(labeled,idxup);
figure,imshow(big);
[lab_big,num_big]=bwlabel(big,4);
rgb_big=label2rgb(lab_big,@spring,'
figure,imshow(rgb_big);
big_data=regionprops(lab_big,'
num_big
text(big_data(k).Centroid
(1),big_data(k).Centroid
(2),lab,'
graindata(numup,:
%获取完整米粒
idxsuit=find([graindata.Area]>
=150&
[graindata.Area]<
=250);
suit=ismember(labeled,idxsuit);
figure,imshow(suit);
%获取完整米粒
[lab_suit,num_suit]=bwlabel(suit,4);
suit_data=regionprops(lab_suit,'
num_suit
signature=sprintf('
text(suit_data(k).Centroid
(1),suit_data(k).Centroid
(2),signature,'
r'
whosgraindata
whoslittle_data
whosbig_data
whossuit_data
graindata
mean([graindata.Area])
mean([graindata.Eccentricity])
mean([graindata.MajorAxisLength])
mean([graindata.MinorAxisLength])
mean([graindata.EquivDiameter])
figure,hist([graindata.Area],20);
figure,hist([graindata.Eccentricity],20);
figure,hist([graindata.MajorAxisLength],20);
figure,hist([graindata.MinorAxisLength],20);
figure,hist([graindata.EquivDiameter],20);
data=[graindata.Area]
data=[graindata.Centroid]
data=[graindata.BoundingBox]
data=[graindata.SubarrayIdx]
data=[graindata.MajorAxisLength]
data=[graindata.MinorAxisLength]
data=[graindata.Eccentricity]
data=[graindata.Orientation]
data=[graindata.ConvexHull]
data=[graindata.ConvexImage]
data=[graindata.ConvexArea]
data=[graindata.Image]
data=[graindata.FilledImage]
data=[graindata.FilledArea]
data=[graindata.EulerNumber]
data=[graindata.Extrema]
data=[graindata.EquivDiameter]
data=[graindata.Solidity]
data=[graindata.Extent]
data=[graindata.PixelIdxList]
data=[graindata.PixelList]
Area
计算各个连通区域中的象素总数
BoundingBox
包含相应区域的最小矩形
Centroid
给出每个区域的质心
MajorAxisLength
与区域具有相同标准二阶中心矩(又叫标准差)的椭圆的长轴长度
MinorAxisLength
与区域具有相同标准二阶中心矩的椭圆的短轴长度
Eccentricity
与区域具有相同标准二阶中心矩的椭圆的离心率
Orientation
与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角
Image
二值图像,与某区域具有相同大小的逻辑矩阵。
FilledImage
与上相同,唯一区别是这是个做了填充的逻辑矩阵!
本例中和上面的没有区别,只有
区域有空洞时才有明显差别。
FilledArea
是标量,填充区域图像中的
on
像素个数
ConvexHull
是p行2列的矩阵,包含某区域的最小凸多边形
ConvexImage
二值图像,用来画出上述的区域最小凸多边形
ConvexArea
是标量,填充区域凸多边形图像中的
EulerNumber
等于图像中目标个数减去这些目标中空洞的个数
Extrema
8行2列矩阵,八方向区域极值点
EquivDiameter
是标量,等价直径:
与区域具有相同面积的圆的直径.计算公式为:
sqrt(4*Area/pi)
Solidity
是标量,同时在区域和其最小凸多边形中的像素比例。
计算公式为:
Area/ConvexArea
,这也是个仿射特征,实际上反映出区域的固靠性程度。
Extent
是标量,同时在区域和其最小边界矩形中的像素比例。
Area除以边界矩
形面积,这也是个仿射特征,实际上反映出区域的扩展范围程度。
PixelIdxListp元向量,存储区域像素的索引下标
PixelListp行ndims(L)列矩阵,存储上述索引对应的像素坐标
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
基于特定原则的区域选择
当你要基于特定准则条件选择某个区域时,将函数
ismember
和
regionprops
联合使用是很有用处的。
例如:
创建一个只包含面积大于80的二值图像,用以下命令
idx=find([stats.Area]>
80);
BW2=ismember(L,idx);
regionprops函数的扩展思路
在regionprops函数的基础上,你可以使用它提供的基本数据来扩展它的功能,比如我就将区域的曲率数据和骨架数据作为它的另外属性值来开发,从而希望它能用来做更细致的特征提取。
%2006.6.2P221图像粒度测定(雪花)
snowflakes.png'
%
(2)
clahei=adapthisteq(i,'
numtiles'
[1010]);
clahei=imadjust(clahei);
imshow(clahei);
gi=imadjust(im2double(i),[],[01]);
figure,imshow(gi),title('
adjustedgrayscaleimage'
%(3)
se=strel('
10);
topi=imtophat(gi,se);
figure,imshow(topi),title('
top-hatimage'
%(4)
forcounter=0:
22
remain=imopen(clahei,strel('
counter));
intensity_area(counter+1)=sum(remain(:
));
figure,plot(intensity_area,'
m-*'
),gridon;
title('
sumofopening(pixels)'
sumofopeningvaluesinopenedimageasafunctionofradius'
xlabel('
radiusofopening(pixels)'
ylabel('
pixelvaluesumofopenedobjects(intensity)'
20
remain=imopen(topi,strel('
surfarea(counter+1)=sum(remain(:
figure,plot(surfarea,'
set(gca,'
xtick'
[02468101214161820]);
surfaceareaofopenedobjectsasafunctionofradius'
surfaceareaofopenedobjects(pixels)'
%(5)
intensity_area_prime=diff(intensity_area);
figure,plot(intensity_area_prime,'
Granulometry(sizedistrubution)ofsnowflakes'
[0246810121416182022]);
radiusofsnowflakes(pixels)'
sumofpixelvaluesinsnowflakesasafunctionofradius'
derivsurfarea=diff(surfarea);
figure,plot(derivsurfarea,'
granulometry(sizedistribution)ofstars'
radiusofstars(pixels)'
lossofpixelsbetweentwosuccessiveopenings'
%2006.6.2
花椒检测
gj.jpg'
imshow(i);
icanny=edge(i,'
canny'
imshow(icanny);
se90=strel('
line'
2,90);
se0=strel('
2,0);
bwsdil=imdilate(icanny,[se90se0]);
figure,imshow(bwsdil),title('
dilated'
ifill=imfill(bwsdil,'
holes'
figure,imshow(ifill);
%bwero=imerode(bwsdil,[se90se0]);
%figure,imshow(bwero);
%i2fill=imfill(bwero,'
%imshow(i2fill);
%bwnobord=imclearborder(bwsdil,4);
%figure,imshow(bwnobord);
bwnobord=imclearborder(ifill,4);
figure,imshow(bwnobord);
se=strel('
5);
bwc=imclose(bwnobord,se);
bwco=imopen(bwnobord,se);
figure,imshow(bwc);
figure,imshow(bwco);
%mask=bwsdil&
bwco;
%figure,imshow(mask);
clc
[labeled,numobjects]=bwlabel(bwco);
jdata=regionprops(labeled,'
%jdata
jarea=[jdata.Area];
mean(jarea)
max(jarea)
min(jarea)
hist(jarea,255)
jdata.Eccentricity
%std([jdata.Eccentricity])/(Mean([jdata.Eccentricity])
jstd=std([jdata.Eccentricity])
jmean=Mean([jdata.Eccentricity])
jcv=jstd/jmean
std([jdata.Area])/mean([jdata.Area])
%面积的变异系数
std([jdata.Eccentricity])/mean([jdata.Eccentricity])%椭圆的变异系数
std([jdata.MajorAxisLength])/mean([jdata.MajorAxisLength])
std([jdata.MinorAxisLength])/mean([jdata.MinorAxisLength])
std([jdata.EquivDiameter])/mean([jdata.EquivDiameter])
%2006.06.06rice.png
figure,imshow(background);
figure,imshow(i2);
figure,imshow(i3);
figure,imshow(bw);
imnobord=imclearborder(bw);
[label,numobjects]=bwlabel(imnobord,4);
rgb_label=label2rgb(label,@spring,'
figure,imshow(rgb_label);
graindata=regionprops(label,'
graindata
numdown=find([graindata.Area]<
graindata(numdown,:
numup=find([graindata.Area]>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 图像 处理 小结