




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Drawing.Imaging;namespace 课程作业3_bk20113268 public partial class Form1 : Form public Form1() InitializeComponent(); / / 打开图像 / / / private void button1_Click(object sender, EventArgs e) /设置文件的类型 openFileDialog1.Filter = *.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf; if (openFileDialog1.ShowDialog() = DialogResult.OK) /打开文件对话框 /根据文件的路径创建Image对象 Image myImage = System.Drawing.Image.FromFile(openFileDialog1.FileName); pictureBox1.Image = myImage; /显示打开的图片 pictureBox1.Height = myImage.Height; pictureBox1.Width = myImage.Width; this.button2.Enabled = true; / / 为数据表表头添加行号 / / / private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) try /添加行号 SolidBrush v_SolidBrush = new SolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor); int v_LineNo = 0; v_LineNo = e.RowIndex + 1; string v_Line = v_LineNo.ToString(); e.Graphics.DrawString(v_Line, e.InheritedRowStyle.Font, v_SolidBrush, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5); catch (Exception ex) MessageBox.Show(添加行号时发生错误,错误信息: + ex.Message, 操作失败); / / 提取特征点 / / / private void button2_Click(object sender, EventArgs e) Image myImage = System.Drawing.Image.FromFile(openFileDialog1.FileName); pictureBox1.Image = myImage; /显示打开的图片 toolStripProgressBar1.Visible = true; /进度条可视 toolStripProgressBar1.Maximum = 7; /设置进度条最大长度值 toolStripProgressBar1.Value = 0; /设置进度条当前值 toolStripProgressBar1.Step = 1; /设置进度条步长 toolStripProgressBar1.Value += toolStripProgressBar1.Step; /进度条前进 int Var_H = pictureBox1.Image.Height; /获取图象的高度 int Var_W = pictureBox1.Image.Width; /获取图象的宽度 Bitmap Var_bmp = (Bitmap)pictureBox1.Image; /根据图象的大小创建Bitmap对象 double, huiduzhi = new doubleVar_W, Var_H; /用于存储各点灰度值 for (int i = 0; i Var_W; i+) for (int j = 0; j Var_H; j+) Color tem_color = Var_bmp.GetPixel(i, j); /获取当前像素的颜色值 huiduzhii, j = tem_color.R * 0.299 + tem_color.G * 0.587 + tem_color.B * 0.114; /各点灰度值 toolStripProgressBar1.Value += toolStripProgressBar1.Step; double, xingquzhi = new doubleVar_W, Var_H; /用于存储各点兴趣值 for (int i = 2; i Var_W - 2; i+) for (int j = 2; j Var_H - 2; j+) double V1 = 0; for (int m = 0; m 4; m+) V1 = V1 + Math.Pow(huiduzhii - 2 + m, j - huiduzhii - 1 + m, j, 2); /计算V1方向相邻像素灰度差平方和 double V2 = 0; for (int m = 0; m 4; m+) V2 = V2 + Math.Pow(huiduzhii - 2 + m, j - 2 + m - huiduzhii - 1 + m, j - 1 + m, 2); /计算V2方向相邻像素灰度差平方和 double V3 = 0; for (int m = 0; m 4; m+) V3 = V3 + Math.Pow(huiduzhii, j - 2 + m - huiduzhii, j - 1 + m, 2); /计算V3方向相邻像素灰度差平方和 double V4 = 0; for (int m = 0; m 4; m+) V4 = V4 + Math.Pow(huiduzhii - 2 + m, j + 2 - m - huiduzhii - 1 + m, j + 1 - m, 2); /计算V4方向相邻像素灰度差平方和 xingquzhii, j = Math.Min(Math.Min(Math.Min(V1, V2), V3), V4); /从V1、V2、V3、V4中取最小值作为该点兴趣值 toolStripProgressBar1.Value += toolStripProgressBar1.Step; double sum=0; for (int i = 0; i Var_W; i+) for (int j = 0; j 100) c = 0; double yuzhi = pingjunzhi * zeng; /设定阈值 double, jianding = new doubleVar_W, Var_H; for (int i = 0; i Var_W; i+) for (int j = 0; j Var_H; j+) if (xingquzhii, j = yuzhi) jiandingi, j = 0; /选取兴趣值大于阈值的点作为特征候选点,其他点兴趣值归零 else jiandingi, j = 1; houxuan+; int, tezhengzhi1 = new inthouxuan, 2; /假定一个数组能容纳所有点皆为特征点的像素坐标矩阵 int yuzhimuban = 5; /定义阈值模板 int mubanbanchuang = 2; for (int i = mubanbanchuang; i Var_W - mubanbanchuang; i = i + yuzhimuban) for (int j = mubanbanchuang; j Var_H - mubanbanchuang; j = j + yuzhimuban) double MAX = 0; /假定5*5模板最大值起始值为第一个元素值 int a = 0; /设a为最大值行 int b = 0; /设b为最大值列 for (int m = 0; m yuzhimuban; m+) for (int n = 0; n yuzhimuban; n+) if (jiandingi - mubanbanchuang + m, j - mubanbanchuang + n = 1) if (MAX xingquzhii - mubanbanchuang + m, j - mubanbanchuang + n) MAX = xingquzhii - mubanbanchuang + m, j - mubanbanchuang + n; /获取5*5模板中最大值 a = i - mubanbanchuang + m; /获取最大值列 b = j - mubanbanchuang + n; /获取最大值行 else a = 0; b = 0; if (a != 0) & (b != 0) tezhengzhi1c, 0 = a; /存储特征点列 tezhengzhi1c, 1 = b; /存储特征点行 c+; /每有一个既不为0也不重复的最大值特征点数目加一 tezhengzhi = tezhengzhi1; zeng += 1; toolStripProgressBar1.Value += toolStripProgressBar1.Step; toolStripProgressBar1.Value += toolStripProgressBar1.Step; int, tezhengdian2 = new intc, 2; /定义一个数组存储像素坐标 for (int i = 0; i c; i+) for (int j = 0; j 2; j+) tezhengdian2i, j = tezhengzhii,j; tezheng = tezhengdian2; Image img = pictureBox1.Image; /将pictureBox1中图像存储入另一个变量 Bitmap bmp = new Bitmap(img.Width, img.Height); /创建Bitmap对象 Graphics g = Graphics.FromImage(bmp); /创建Graphics对象 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; /设置高质量双三次插值法 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; /设置高质量,低速度呈现平滑程度 g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; /设置绘制到此 Graphics 的合成图像的呈现质量 g.DrawImage(img, 0, 0, img.Width, img.Height); /以img为原本重新于(0,0)点绘制 g.Dispose(); /释放资源 for (int i = 0; i c; i+) Graphics myGraphics = Graphics.FromImage(bmp); /创建Graphics对象 myGraphics.DrawLine(new Pen(Color.Red, 1), new Point(tezhengdian2i, 0, tezhengdian2i, 1 - 5), new Point(tezhengdian2i, 0, tezhengdian2i, 1 + 5); /画出竖直方向直线 myGraphics.DrawLine(new Pen(Color.Red, 1), new Point(tezhengdian2i, 0 - 5, tezhengdian2i, 1), new Point(tezhengdian2i, 0 + 5, tezhengdian2i, 1); /画出水平方向直线 myGraphics.Dispose(); /释放资源 pictureBox1.Image = bmp; /显示含有“+”的图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》能力提升试题打印含答案详解【完整版】
- 教师招聘之《幼儿教师招聘》每日一练附答案详解(轻巧夺冠)
- 2025年教师招聘之《小学教师招聘》通关题库附答案详解【巩固】
- 渔业养殖疾病防控服务创新创业项目商业计划书
- 绿色汽车设计理念推广创新创业项目商业计划书
- 押题宝典教师招聘之《小学教师招聘》题库附参考答案详解(黄金题型)
- 动物保健品数字化营销平台创新创业项目商业计划书
- 教师招聘之《小学教师招聘》能力提升题库附参考答案详解【培优b卷】
- 2025年教师招聘之《小学教师招聘》综合提升测试卷及完整答案详解(典优)
- 2025内蒙古维拉斯托矿业有限公司招聘6名考试备考及答案详解(典优)
- YY/T 0719.10-2022眼科光学接触镜护理产品第10部分:保湿润滑剂测定方法
- YC/T 320-2009烟草商业企业管理体系规范
- GB/T 12755-1991建筑用压型钢板
- 燃气轮机介绍课件
- 2023年南京江宁交通建设集团有限公司招聘笔试模拟试题及答案解析
- 消防安全检查申报表
- 海飞丝销售策划书模板
- YYT 1244-2014 体外诊断试剂用纯化水
- 工程技术研究中心(重点实验室)可行性研究报告
- 城市轨道交通综合监控系统整套课件汇总完整版电子教案(全)
- 部编版五年级上册第一单元集体备课
评论
0/150
提交评论