Win8 Metro(C#)数字图像处理--2.74图像凸包计算
2015-04-28 12:38
429 查看
/// <summary> /// Convex Hull compute. /// </summary> /// <param name="points">The source image points.</param> /// <param name="startPoints"></param> /// <param name="endPoints"></param> private static void ConvexhullCompute(ref Point[] srcPoints,ref List<Point>startPoints, ref List<Point> endPoints) { Point start; Point end; double a = 0, b = 0; int signa = 0, signb = 0; int max = srcPoints.Length; double temp = 0.0; int t = 0; double tx = 0.0; for (int i = 0; i < max; i++) { start = srcPoints[i]; for (int k = i + 1; k < max; k++) { end = srcPoints[k]; if (start.X == end.X) { for (int j = 0; j < max; j++) { if ((!(signa > 0 && signb > 0)) && (j != i && j != k)) { t = srcPoints[j].X; if (t > start.X) signa++; if (t < start.X) signb++; } } } else { a = (double)(end.Y - start.Y) / (double)(end.X - start.X); b = (double)start.Y - (double)start.X * a; for (int j = 0; j < max; j++) { if ((!(signa > 0 && signb > 0)) && (j != i && j != k)) { temp = a * (double)srcPoints[j].X + b; tx = (double)srcPoints[j].Y; if (temp > tx) signa++; if (temp < tx) signb++; } } } if (signa * signb == 0) { startPoints.Add(start); endPoints.Add(end); } signb = 0; signa = 0; } } }
最后,分享一个专业的图像处理网站(微像素),里面有很多源代码下载:
http://www.zealpixel.com/portal.php
相关文章推荐
- Win8 Metro(C#)数字图像处理--3.5图像形心计算
- Win8 Metro(C#)数字图像处理--3.1图像均值计算
- Win8 Metro(C#)数字图像处理--3.2图像方差计算
- Win8 Metro(C#)数字图像处理--3.3图像直方图计算
- Win8 Metro(C#)数字图像处理--3.4图像信息熵计算
- Win8 Metro(C#)数字图像处理--2.37Wallis图象锐化
- Win8 Metro(C#)数字图像处理--2.70修正后的阿尔法滤波器
- Win8 Metro(C#)数字图像处理--2.38Hough变换直线检测
- Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法
- Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
- Win8 Metro(C#)数字图像处理--2.55OSTU法图像二值化
- Win8 Metro(C#)数字图像处理--2.53图像傅立叶变换
- Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化
- Win8 Metro(C#)数字图像处理--2.44图像油画效果算法
- Win8 Metro(C#)数字图像处理--2.54迭代法图像二值化
- Win8 Metro(C#)数字图像处理--2.67图像最大值滤波器
- Win8 Metro(C#)数字图像处理--2.57一维最大熵法图像二值化
- Win8 Metro(C#) 数字图像处理--1 图像打开,保存
- Win8 Metro(C#)数字图像处理--2.46图像RGB分量增强效果