边缘特征点提取.docx

上传人:b****5 文档编号:4317615 上传时间:2022-11-29 格式:DOCX 页数:14 大小:22.85KB
下载 相关 举报
边缘特征点提取.docx_第1页
第1页 / 共14页
边缘特征点提取.docx_第2页
第2页 / 共14页
边缘特征点提取.docx_第3页
第3页 / 共14页
边缘特征点提取.docx_第4页
第4页 / 共14页
边缘特征点提取.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

边缘特征点提取.docx

《边缘特征点提取.docx》由会员分享,可在线阅读,更多相关《边缘特征点提取.docx(14页珍藏版)》请在冰豆网上搜索。

边缘特征点提取.docx

边缘特征点提取

边缘特征点提取

这个是主程序:

界面和代这

usingSystem;

usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;usingSystem.IO;

namespace这这这这这影量作1

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

privatestringcurFileName;

privateSystem.Drawing.BitmapcurBitmap;

inta=0;

intb=0;

intn=0;

intcount=0;

privatevoidbutton2_Click(objectsender,EventArgse)

{

OpenFileDialogof=newOpenFileDialog();

of.Filter="JPG这像(*.jpg)|*.jpg|BMP这像(*.bmp)|*.bmp|所有文件(*.*)|*.*";

of.Title="打文件这这这";

of.ShowDialog();

curFileName=of.FileName;

try

{

curBitmap=(Bitmap)Image.FromFile(curFileName);

}

catch(Exceptionex)

{

MessageBox.Show("出这!

"+ex.Message);

}

pictureBox1.Image=Image.FromFile(curFileName);

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

button4.Visible=true;

inti,j,k,m;

doubleV1=0,V2=0,V3=0,V4=0;

double[,]V=newdouble[curBitmap.Width,curBitmap.Height];

double[,]VV=newdouble[curBitmap.Width,curBitmap.Height];

int[,]Gray=newint[curBitmap.Width,curBitmap.Height];

for(i=0;i

for(j=0;j

{

ColorpixelColor=this.curBitmap.GetPixel(i,j);

Gray[i,j]=(int)(pixelColor.R*0.299+pixelColor.G*0.587+pixelColor.B*

0.114);//灰度算公式这这这这

}

for(i=2;i

for(j=2;j

{

for(k=-2;k<2;k++)

{

V1+=(Gray[i+k,j]-Gray[i+k+1,j])*(Gray[i+k,j]-Gray[i+k+1,j]);

V2+=(Gray[i+k,j+k]-Gray[i+k+1,j+k+1])*(Gray[i+k,j+k]-Gray[i

+k+1,j+k+1]);

V3+=(Gray[i,j+k]-Gray[i,j+k+1])*(Gray[i,j+k]-Gray[i,j+k+1]);

V4+=(Gray[i-k,j+k]-Gray[i-k-1,j+k+1])*(Gray[i-k,j+k]-Gray[i-

k-1,j+k+1]);

}

V[i,j]=MaxMin.MyMin(V1,V2,V3,V4);

V1=0;V2=0;V3=0;V4=0;

}

for(i=2;i

for(j=2;j

{

try

{

if(V[i,j]>=Convert.ToDouble(textBox1.Text))

{

VV[i,j]=1;

}

else

{

VV[i,j]=0;

}

}

catch(Exceptionex)

{

MessageBox.Show("这这这这这入出:

"+ex.Message);

}

}

intWindowsScal=comboBox1.SelectedIndex;

if(WindowsScal==0)

WindowsScal=2;

elseif(WindowsScal==1)

WindowsScal=3;

elseif(WindowsScal==2)

WindowsScal=4;

else

MessageBox.Show("这这这特征点窗口模板大小");

m=WindowsScal*2+1;

doubletemp;

intwsi=WindowsScal;

intwsj=WindowsScal;

int[]Record=newint[curBitmap.Width*curBitmap.Height];

boolbol=true;

do

{

temp=0;

for(i=wsi;i

{

for(j=wsj;j

{

if(VV[i,j]==1)

{

if(temp

{

temp=V[i,j];

a=i;

b=j;

}

}

else

{

a=0;b=0;

}

}

}

Record[n++]=a;

Record[n++]=b;

a=0;b=0;

if(curBitmap.Width-(wsi+m)

{

wsj+=m;

wsi=WindowsScal;

}

elseif(curBitmap.Height-(wsj+m)

{

bol=false;

}

else

{

wsi+=m;

}

}while(bol);

for(i=0;i

{

if(Record[i]!

=0&&Record[i+1]!

=0)

{

count++;

DrawCircle.circle(Record[i],Record[i+1],pictureBox1);

richTextBox1.Text=richTextBox1.Text+'\n'+""+Record[i]+""+Record[i

+1]+""+Gray[Record[i],Record[i+1]]+""+V[Record[i],Record[i+1]];

}

}

label3.Text=count.ToString()+"个";

pictureBox1.Refresh();

MessageBox.Show("这理完成:

");

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

SaveFileDialogsf=newSaveFileDialog();

sf.Filter="特征点数据|*.dat";

sf.FileName="特征点数据";

sf.ShowDialog();

FileStreamfs=newFileStream(sf.FileName,FileMode.Append);

StreamWritersw=newStreamWriter(fs,Encoding.Default);

sw.Write(richTextBox1.Text);

sw.Close();

fs.Close();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

stringstr;

if(pictureBox1.Image!

=null)

{

Bitmapbox1=newBitmap(pictureBox1.Image);

SaveFileDialogsv=newSaveFileDialog();

sv.Filter="jpg文件|*.jpg";

sv.ShowDialog();

str=sv.FileName;

box1.Save(str);

}

else

{

MessageBox.Show("没有片:

这这这");

}

}

}

}

//////////////////////////////////////////////////////////////////////////////////////////////////////

下面是各这这这:

第一个是比大小这这这

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.IO;

namespace这这这这这影量作1

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

privatestringcurFileName;

privateSystem.Drawing.BitmapcurBitmap;

inta=0;

intb=0;

intn=0;

intcount=0;

privatevoidbutton2_Click(objectsender,EventArgse)

{

OpenFileDialogof=newOpenFileDialog();

of.Filter="JPG这像(*.jpg)|*.jpg|BMP这像(*.bmp)|*.bmp|所有文件(*.*)|*.*";

of.Title="打文件这这这";

of.ShowDialog();

curFileName=of.FileName;

try

{

curBitmap=(Bitmap)Image.FromFile(curFileName);

}

catch(Exceptionex)

{

MessageBox.Show("出这!

"+ex.Message);

}

pictureBox1.Image=Image.FromFile(curFileName);

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

button4.Visible=true;

inti,j,k,m;

doubleV1=0,V2=0,V3=0,V4=0;

double[,]V=newdouble[curBitmap.Width,curBitmap.Height];

double[,]VV=newdouble[curBitmap.Width,curBitmap.Height];

int[,]Gray=newint[curBitmap.Width,curBitmap.Height];

for(i=0;i

for(j=0;j

{

ColorpixelColor=this.curBitmap.GetPixel(i,j);

Gray[i,j]=(int)(pixelColor.R*0.299+pixelColor.G*0.587+pixelColor.B*

0.114);//灰度算公式这这这这

}

for(i=2;i

for(j=2;j

{

for(k=-2;k<2;k++)

{

V1+=(Gray[i+k,j]-Gray[i+k+1,j])*(Gray[i+k,j]-Gray[i+k+1,j]);

V2+=(Gray[i+k,j+k]-Gray[i+k+1,j+k+1])*(Gray[i+k,j+k]-Gray[i

+k+1,j+k+1]);

V3+=(Gray[i,j+k]-Gray[i,j+k+1])*(Gray[i,j+k]-Gray[i,j+k+1]);

V4+=(Gray[i-k,j+k]-Gray[i-k-1,j+k+1])*(Gray[i-k,j+k]-Gray[i-

k-1,j+k+1]);

}

V[i,j]=MaxMin.MyMin(V1,V2,V3,V4);

V1=0;V2=0;V3=0;V4=0;

}

for(i=2;i

for(j=2;j

{

try

{

if(V[i,j]>=Convert.ToDouble(textBox1.Text))

{

VV[i,j]=1;

}

else

{

VV[i,j]=0;

}

}

catch(Exceptionex)

{

MessageBox.Show("这这这这这入出:

"+ex.Message);

}

}

intWindowsScal=comboBox1.SelectedIndex;

if(WindowsScal==0)

WindowsScal=2;

elseif(WindowsScal==1)

WindowsScal=3;

elseif(WindowsScal==2)

WindowsScal=4;

else

MessageBox.Show("这这这特征点窗口模板大小");

m=WindowsScal*2+1;

doubletemp;

intwsi=WindowsScal;

intwsj=WindowsScal;

int[]Record=newint[curBitmap.Width*curBitmap.Height];

boolbol=true;

do

{

temp=0;

for(i=wsi;i

{

for(j=wsj;j

{

if(VV[i,j]==1)

{

if(temp

{

temp=V[i,j];

a=i;

b=j;

}

}

else

{

a=0;b=0;

}

}

}

Record[n++]=a;

Record[n++]=b;

a=0;b=0;

if(curBitmap.Width-(wsi+m)

{

wsj+=m;

wsi=WindowsScal;

}

elseif(curBitmap.Height-(wsj+m)

{

bol=false;

}

else

{

wsi+=m;

}

}while(bol);

for(i=0;i

{

if(Record[i]!

=0&&Record[i+1]!

=0)

{

count++;

DrawCircle.circle(Record[i],Record[i+1],pictureBox1);

richTextBox1.Text=richTextBox1.Text+'\n'+""+Record[i]+""+Record[i

+1]+""+Gray[Record[i],Record[i+1]]+""+V[Record[i],Record[i+1]];

}

}

label3.Text=count.ToString()+"个";

pictureBox1.Refresh();

MessageBox.Show("这理完成:

");

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

SaveFileDialogsf=newSaveFileDialog();

sf.Filter="特征点数据|*.dat";

sf.FileName="特征点数据";

sf.ShowDialog();

FileStreamfs=newFileStream(sf.FileName,FileMode.Append);

StreamWritersw=newStreamWriter(fs,Encoding.Default);

sw.Write(richTextBox1.Text);

sw.Close();

fs.Close();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

stringstr;

if(pictureBox1.Image!

=null)

{

Bitmapbox1=newBitmap(pictureBox1.Image);

SaveFileDialogsv=newSaveFileDialog();

sv.Filter="jpg文件|*.jpg";

sv.ShowDialog();

str=sv.FileName;

box1.Save(str);

}

else

{

MessageBox.Show("没有片:

这这这");

}

}

}

}

//////////////////////////////////////////////////////////////////////////////////////////////////////第二个:

这在像上面做这这这这这这这usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.IO;

namespace这这这这这影量作1

{

publicclassDrawCircle

{

publicstaticvoidcircle(intCursorX,intCursorY,PictureBoxpictureBox1)

{

Graphicsg;

g=Graphics.FromImage(pictureBox1.Image);

//g.DrawEllipse(newPen(Color.Green,1),CursorX-r,CursorY-r,2*r,2*r);

g.DrawLine(newPen(Color.Red,1),CursorX-8,CursorY,CursorX+8,CursorY);

g.DrawLine(newPen(Color.Red,1),CursorX,CursorY-8,CursorX,CursorY+8);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1