|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) [. I6 z: B% |+ j3 ~6 N' s" C7 r
一、源代码, @4 g2 P) e. Z+ F
; |# l/ P I$ r) p% S: Y( f- function chengxu()
- %第1步
- close all
- I=imread('1.jpg'); %读取图像
- I=rgb2gray(I); %彩色图像转换成灰度图
- % I=im2bw(I); %二值化
- I=edge(double(I)); %检测图像的边缘
- figure
- imshow(I) %显示边缘检测的结果
- %第2步
- [m,n]=size(I); %计算图像的尺寸
- M=3; %定义X方向分割的块数
- N=3; %定义Y方向分割的块数
- mm=floor(m/M); %子块行的长度
- nn=floor(n/N); %子块列的长度
- count=1; %计数器
- figure
- for i=1:M
- for j=1:N
- A=I((i-1)*mm+1:i*mm,(j-1)*nn+1:j*nn); %分割原图像,得到一个子块
- subplot(M,N,count)
- imshow(A) %显示一个子块
- zuoshangjiao=[(i-1)*mm+1 (j-1)*nn+1]; %子块左上角的坐标
- [x,y,k,b]=zikuai(A,zuoshangjiao); %得到子块里白色像素点拟合得到的直线的斜率k和截距b(调用zikuai函数)
- X{count}=x; %保存子块里所有白色像素的x坐标
- Y{count}=y; %保存子块里所有白色像素的y坐标
- K(count)=k; %保存子块里拟合得到的直线的斜率k
- B(count)=b; %保存子块里拟合得到的直线的截距b
- count=count+1; %计数器加1,进行下一个子块的计算
- end
- end8 a. l4 X- d/ k; K$ _* J& O
6 P" q0 V: Z3 ~: F) s
$ u) K0 N( |& i' N. q) A @二、运行结果4 |; S7 D! O: p: r7 B
( I2 `3 B; |6 D# i+ D' ^" a, w/ @/ }4 s+ A i3 e; h
$ b# J. w) J( F; J7 B( u
8 D( D3 N+ L3 t5 b( A0 b& s
# n) M* w" X: V8 a0 o, N' P# U' W- n2 B0 V" [. s2 e' w* _
, n; m0 k8 W) t) W1 r1 D6 I. e& ^) \7 n j1 V: n( Z ]
( j: d$ q7 I) z7 ] M) q! }. ] L7 w+ u, d
|
|