资源简介
根据Harris算法 CSS算法写的一个简单图像角点检测类
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Postrue_Correction.ClassLib.Image
{
class MyImageCorner
{
#region Need
///
/// 生成并初始化一个8位灰度图像
///
public static Bitmap CreateGrayscaleImage(int width int height)
{
Bitmap bmp = new Bitmap(width height PixelFormat.Format8bppIndexed);
// 设置调色板
SetGrayscalePalette(bmp);
return bmp;
}
///
/// 设置位图的调色板至灰度模式
///
private static void SetGrayscalePalette(Bitmap srcImg)
{
// 检查像素格式
if (srcImg.PixelFormat != PixelFormat.Format8bppIndexed)
throw new ArgumentException();
// 获取调色板
ColorPalette cp = srcImg.Palette;
// 初始化调色板
for (int i = 0; i < 256; i++)
{
cp.Entries[i] = Color.FromArgb(i i i);
}
// 设置调色板
srcImg.Palette = cp;
}
#endregion
///
/// Harris角点检测
///
///
///
///
public static Bitmap Harris(Bitmap srcBitmap byte threshold)
{
int w = srcBitmap.Width;
int h = srcBitmap.Height;
Bitmap rs = CreateGrayscaleImage(w h);
Rectangle rect = new Rectangle(0 0 srcBitmap.Width srcBitmap.Height);
BitmapData bmpData = srcBitmap.LockBits(rect ImageLockMode.ReadOnly srcBitmap.PixelFormat);
BitmapData rsData = rs.LockBits(rect ImageLockMode.WriteOnly PixelFormat.Format8bppIndexed);
int step = 1;
switch (srcBitmap.PixelFormat)
{
case PixelFormat.Format24bppRgb: step = 3;
break;
case PixelFormat.Format32bppArgb: step = 4;
break;
case PixelFormat.Format8bppIndexed: step = 1;
break;
}
int istride = bmpData.Stride;
int ostride = rsData.Stride;
double gradX gradY;
double[] gradXX = new double[ostride * h];//x方向梯度的平方的数组
double[] gradYY = new double[ostride * h];//y方向梯度的平方的数组
double[] gradXY = new double[ostride * h];//x方向梯度与y方向梯度的乘积的数组
double[] CRF = new double[ostride * h];//存储可能的角点
unsafe
{
byte* pin = (byte*)bmpData.Scan0.ToPointer();
byte* pout = (byte*)rsData.Scan0.ToPointer();
//计算梯度
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w;
相关资源
-
C# winfrom操作xm
l_读写修改xm l及写入 - C# 西门子PLC ppi通讯程序
- C#自动出题判分小程序
- C#实现的 路由 距离矢量算法
- C# 将照片存储到MySQL数据库
- ASP.NET 动态网站开发基础教程(C#篇)
- C# 简单反射实现winform左侧树形导航,
- WPF封装动画类,使用方便气泡动画、
- C#WinForm基于BS构架实现CS及源代码
- C#实现局域网文件传送
- c# 截取指定窗口图 根据指定坐标
- 传智播客24期最全视频
- C#控制IE浏览器
- C#对DataGridView进行添加、修改、删除数
- FTP上传、、创建目录、重命名、删除
- c# 游戏手柄控制 Joystick
- c# 调用百度地图API
- C#软件注册和注册机的实现源码
- c# 图片编辑方法集合
- c#五子棋游戏源代码200445
- c# 加密和解密相关代码
- C#编写txt小说阅读器()
- C#实现简洁的绘图界面
- C#实现的读取CAD表格文字
- C#高质量仿腾讯截图程序(改)
- 员工管理信息系统C#源代码
- c#连接sqlite简单
- WPF制作的取色器ColorPicker
- C#登录页面
- 11 如何在工具栏添加下拉菜单.rar
评论
共有 条评论