jsvascript图像处理―(计算机视觉应用)图像金字塔
2013-01-15 14:11
1241 查看
var pyrDown = function(__src, __dst){
__src || error(arguments.callee, IS_UNDEFINED_OR_NULL/* {line} */);
if(__src.type && __src.type == "CV_RGBA"){
var width = __src.col,
height = __src.row,
dWidth = ((width & 1) + width) / 2,
dHeight = ((height & 1) + height) / 2,
sData = __src.data,
dst = __dst || new Mat(dHeight, dWidth, CV_RGBA),
dstData = dst.data;
var withBorderMat = copyMakeBorder(__src, 2, 2, 0, 0),
mData = withBorderMat.data,
mWidth = withBorderMat.col;
var newValue, nowX, offsetY, offsetI, dOffsetI, i, j;
var kernel = [1, 4, 6, 4, 1,
, 16, 24, 16, 4,
, 24, 36, 24, 6,
, 16, 24, 16, 4,
, 4, 6, 4, 1
];
for(i = dHeight; i--;){
dOffsetI = i * dWidth;
for(j = dWidth; j--;){
for(c = 3; c--;){
newValue = 0;
for(y = 5; y--;){
offsetY = (y + i * 2) * mWidth * 4;
for(x = 5; x--;){
nowX = (x + j * 2) * 4 + c;
newValue += (mData[offsetY + nowX] * kernel[y * 5 + x]);
}
}
dstData[(j + dOffsetI) * 4 + c] = newValue / 256;
}
dstData[(j + dOffsetI) * 4 + 3] = mData[offsetY + 2 * mWidth * 4 + (j * 2 + 2) * 4 + 3];
}
}
}else{
error(arguments.callee, UNSPPORT_DATA_TYPE/* {line} */);
}
return dst;
};
相关文章推荐
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- 图像处理与计算机视觉算法及应用(第2版)
- 图像处理、分析、识别、应用的课程笔记,PPT/PDF课件,计算机视觉中的机器学习、目标识别、分割、文本识别、fMRI 分析、运动和追踪等在线视频教程
- 图像处理和计算机视觉中的经典论文
- 图像处理与计算机视觉基础,经典以及最近发展
- 图像处理与计算机视觉的经典书籍
- 【计算机视觉】【图像处理】对比度增强方法:伽马变换、全局直方图均衡化、限制对比度的自适应直方图均衡化
- 【计算机视觉】【图像处理】图像平滑-双边滤波+联合双边滤波+导向滤波
- OpenCV3计算机视觉Python语言实现(三):使用OpenCV3处理图像
- 图像处理与计算机视觉基础,经典以及最近发展
- OpenCV-图像处理和计算机视觉
- 图像处理与计算机视觉基础,经典以及最近发展(二)
- 【总结】图像处理与计算机视觉:基础,经典及发展
- 计算机视觉,图像处理 经典代码paper整理(很全很强大!)
- [置顶] 图像处理与计算机视觉基础,经典以及最近发展
- 计算机视觉与图像处理、模式识别、机器学习学科之间的关系
- 计算机视觉、数字图像处理等领域相关资源
- 【Compute Vision】图像处理与计算机视觉基础,经典以及最近发展
- 图像处理与计算机视觉资源汇总——论文+代码+教材+视频等等
- 图像处理与计算机视觉基础,经典以及最近发展