扫描像素点法获取图形轮廓
来源:互联网 发布:javascript取整 编辑:程序博客网 时间:2024/06/02 23:09
参考:
http://runjs.cn/code/k09vtlq7
var _getContourData = function(contourData,canvas){ var w = canvas.width; var h = canvas.height; _draft = canvas.getContext('2d').createImageData(w, h); var pixelsData = contourData; var pixels = pixelsData.data; //遍历像素并标记 for (var r = 0; r < h - 1; r++) { for (var c = 0; c < w - 1; c++) { var rIndexCurrent = 4 * (c + r * w); var gIndexCurrent = 4 * (c + r * w) + 1; var bIndexCurrent = 4 * (c + r * w) + 2; var aIndexCurrent = 4 * (c + r * w) + 3; var rIndexRight = 4 * (c + 1 + r * w); var gIndexRight = 4 * (c + 1 + r * w) + 1; var bIndexRight = 4 * (c + 1 + r * w) + 2; var aIndexRight = 4 * (c + 1 + r * w) + 3; var rIndexDown = 4 * (c + (r + 1) * w); var gIndexDown = 4 * (c + (r + 1) * w) + 1; var bIndexDown = 4 * (c + (r + 1) * w) + 2; var aIndexDown = 4 * (c + (r + 1) * w) + 3; var currentPixel = new pixel(pixels[rIndexCurrent], pixels[gIndexCurrent], pixels[bIndexCurrent], pixels[aIndexCurrent]); var rightPixel = new pixel(pixels[rIndexRight], pixels[gIndexRight], pixels[bIndexRight], pixels[aIndexRight]); var downPixel = new pixel(pixels[rIndexDown], pixels[gIndexDown], pixels[bIndexDown], pixels[aIndexDown]); var horizonDis = distance(currentPixel, rightPixel); var verticalDis = distance(currentPixel, downPixel); if (horizonDis >= 200 || verticalDis >= 200) { _draft.data[rIndexCurrent] = 255; _draft.data[gIndexCurrent] = 0; _draft.data[bIndexCurrent] = 0; _draft.data[aIndexCurrent] = 255; } else { _draft.data[rIndexCurrent] = 0; _draft.data[gIndexCurrent] = 0; _draft.data[bIndexCurrent] = 0; _draft.data[aIndexCurrent] = 0; } } } //计算距离 function distance(pa, pb) { var sum = 0; sum += Math.abs(Number(pa.r) - Number(pb.r)); sum += Math.abs(Number(pa.g) - Number(pb.g)); sum += Math.abs(Number(pa.b) - Number(pb.b));//// var sum = Math.abs(Number(pa.a)-Number(pb.a)); return sum; } //自定义像素对象 function pixel(red, green, blue, aval) { this.r = red; this.g = green; this.b = blue; this.a = aval; } }
0 0
- 扫描像素点法获取图形轮廓
- 图形点扫描
- 图形点扫描解析
- OPENCV获取像素点
- opencv像素点获取
- opencv 获取像素点
- 利用marching square algorithm获取图形轮廓
- 判断一个像素点是不是在封闭轮廓内部
- opencv中轮廓内部的像素点怎么提取
- 求不规则图形内像素点(凸状)
- 获取字符长度 像素点
- opengl 获取像素点颜色
- 通过扫描图片获取pattern图形的九个点的坐标
- 二值化轮廓图像轮廓点坐标顺时针获取matlab程序
- 查找轮廓并获取最大轮廓的所有点
- opnecv扫描轮廓寻找关键点cvFindDominantPoints的运用
- cvFindContours 获取轮廓中的所有点
- 获取轮廓线上的点坐标
- 养成一个良好的习惯
- mysql 删除所有记录 并主键从一自增
- unity鼠标光标样式改变
- 3013-12-11在OnSize中设置好控件的位置后,初始化的时候没有正常显示问题
- WebLogic系统管理官方培训
- 扫描像素点法获取图形轮廓
- 为网页指定展现的字符编码
- android自定义统计折线图和柱状图组合
- iOS 开发者必不可少的 75 个工具
- #include <queue> 的使用
- Windows命令行获取当前bat文件所在目录,添加永久系统环境变量的方法
- OCP-1Z0-053-V13.02-636题
- Python自学笔记(二)对象和类
- 在Pocket PC应用程序中使用DataGrid控件