Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-04
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
c(i,j)=0且c(i+1,j)=c(i+2,j)=......=c(i+n,j)=1且c(i+n+1,j)=0则从c(i+1,j)到c(i+n,j)为一水平直线并求此直线的长度?
求教高手该怎么编函数? :ft: |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21 ![]() |
![]()
如果是任意线段的检测,可以用哈夫变换做,你这种情况其实很简单(检测水平直线),编写个M函数,设计好入口参数(图像,图像宽度,高度等,如果是多幅图像还可以有图像数量),出口参数(线线段个数,段起始坐标,线段长度),如:
[线线段个数,段起始坐标,线段长度]=funcname(imagepath,imageheight,imagewidth,...) for m=1:imageheight for n=1:imagewidth .... 直线[k]=长度; n+=长度; end end ...... 函数实现就用你给出的公式就成(循环卷积,控制下循环变量增量),不过得设置一下最小直线长度,否则直线会很多的。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-03-04
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]() |
![]() |
![]() |