1. 首页 > 星座常识 > 文章页面

基于matlab的边缘检测的robert算子的算法怎么写(prewitt算子边缘检测 matlab代码)

数字图像处理边缘检测算子matlab,使用roberts算子对图像进行边缘检测,并二值化的matlab代码实现...

大家好,关于基于matlab的边缘检测的robert算子的算法怎么写很多朋友都还不太明白,今天小编就来为大家分享关于基于matlab的数字图像边缘检测算法研究的知识,希望对各位有所帮助!

本文目录

基于matlab的边缘检测的robert算子的算法怎么写matlab中如何把边缘检测出来的图像进行直线拟合基于matlab的边缘检测的robert算子的算法怎么写

matlab本身有库函数的。直接调用啊

数字图像处理边缘检测算子matlab,使用roberts算子对图像进行边缘检测,并二值化的matlab代码实现...

VC代码:

void BianYuanJianCeDib::Robert()

{

LPBYTE p_data;//原图数据区指针

int wide,height;//原图长、宽

int i,j;//循环变量

int pixel[4];//Robert算子

p_data=this->GetData();

wide=this->GetWidth();

height=this->GetHeight();

LPBYTE temp=new BYTE[wide*height];//新图像缓冲区

//设定新图像初值为255

memset(temp,255, wide*height);

//由于使用2*2的模板,为防止越界,所以不处理最下边和最右边的两列像素

for(j=0;j<height-1;j++)

for(i=0;i<wide-1;i++)

{

//生成Robert算子

pixel[0]=p_data[j*wide+i];

pixel[1]=p_data[j*wide+i+1];

pixel[2]=p_data[(j+1)*wide+i];

pixel[3]=p_data[(j+1)*wide+i+1];

//处理当前像素

temp[j*wide+i]=(int)sqrt((pixel[0]-pixel[3])*(pixel[0]-pixel[3])

+(pixel[1]-pixel[2])*(pixel[1]-pixel[2]));

}

//将缓冲区中的数据复制到原图数据区

memcpy(p_data, temp,wide*height);

//删除缓冲区

delete temp;

}

matlab中如何把边缘检测出来的图像进行直线拟合

用sobel,canny算子都可以提取出边缘;

提取出边缘再进行im2bw二值化,得到二值化后的0,1图像;

1的图像本质上是由离散的点构成,将离散的点的x,y坐标找出,

可以用find命令,例如[x,y]=find(I==1);

最后用cftool曲线拟合工具箱,拟合出所有的x,y的坐标点;

大致这么个思路,往这方面使劲,基本上就可以搞定.

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

Matlab与FPGA图像处理 Roberts Prewitt Sobel LOG Canny等常见的图像边缘检测算子比较

联系我们

Q Q:

微信号:

工作日:9:30-18:30,节假日休息

微信