资源简介
根据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#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
评论
共有 条评论