请输入您要查询的百科知识:

 

词条 Robert算子
释义

§ 概述

Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内 产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。

§ .NET代码如下:

private void menuItem23_Click(object sender, System.EventArgs e)

{

if(this.pictureBox1.Image!=null)

{

this.pictureBox2.Visible=true;

int height=this.pictureBox1.Image.Height;

int width=this.pictureBox1.Image.Width;

Bitmap temp=new Bitmap(width,height);

Bitmap process=(Bitmap)this.pictureBox1.Image;

int i,j,p0,p1,p2,p3;

Color 【】 pixel=new Color【4】;

int result;

for(j=height-2;j>0;j--)

{

for(i=0;i<width-2;i++)

{

pixel【0】=process.GetPixel(i,j);

pixel【1】=process.GetPixel(i,j+1);

pixel【2】=process.GetPixel(i+1,j);

pixel【3】=process.GetPixel(i+1,j+1);

p0=(int)(0.3*pixel【0】.R+0.59*pixel【0】.G+0.11*pixel【0】.B);

p1=(int)(0.3*pixel【1】.R+0.59*pixel【1】.G+0.11*pixel【1】.B);

p2=(int)(0.3*pixel【2】.R+0.59*pixel【2】.G+0.11*pixel【2】.B);

p3=(int)(0.3*pixel【3】.R+0.59*pixel【3】.G+0.11*pixel【3】.B);

result=(int)Math.Sqrt((p0-p3)*(p0-p3)+(p1-p2)*(p1-p2));

if (result>255)

result=255;

if (result<0)

result=0;

temp.SetPixel(i,j,Color.FromArgb(result,result,result));

}

}

this.pictureBox2.Image=temp;

}

}

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/19 5:03:43