【知识整理】利用html5 canvas技术实现反差式对焦功能的相关探讨
2016-08-25 11:38
816 查看
这里再给大家介绍一下利用html5中canvas技术简易实现相机反差式自动对焦功能的算法思路,算是帮助大家开拓思路,代码就不赘述了,有兴趣的可以亲自动手试一下。思路如下:
1.在相机可调节的焦距范围内,每一焦距下拍摄一张目标物体的照片,这样会得到若干或清晰或模糊的照片。
2.利用HTML5 canvas getImageData() 方法(注:如欲详细了解getImageData()方法的详细介绍,请参考本人CSDN博客《【自制】html5图像边缘查找算法》一文),可以得到每张图片的每一像素的RGBA值的二维数组,(R - 红色 (0-255),G - 绿色 (0-255),B - 蓝色 (0-255),A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的))。
3.如目标物体颜色形状较为规则,可以取到每张图像中心的十字线上每一位置(如图1)的RGBA值。如目标物体颜色形状不规则,可以取每张图像中心的米字线上(如图2)每一位置的RGBA值,存入数组中,每张图像得到一个数组,最终得到若干组数组。
图1
图2
4.取到每张图片指定位置的RGBA值的数组后,将颜色RGB值看做一个三维空间,R,G,B分别为X,Y,Z坐标轴,坐标轴范围为0-255。计算数组中存储的每一颜色的RGBA值距离黑色-RGB(0,0,0)或白色-RGB(255,255,255)在三维空间的距离。假设数组中某一颜色的RGB值分别为a,b,c.则该颜色距黑色(0,0,0)三维空间距离的计算公式为√(a-0)^2+(b-0)^2+(c-0)^2(根号下a减0的平方加b减0的平方家c减0的平方)。将每一组数组中的值均计算距黑色的距离后求和,最终比较各组和的最大值和最小值的差值,差值越大表示该焦距下拍摄的图片色彩最为丰富,也就表示该焦距下拍摄的照片最清晰。差值最大的那组数组所代表的那张图片就是对焦后拍摄的图片了。
1.在相机可调节的焦距范围内,每一焦距下拍摄一张目标物体的照片,这样会得到若干或清晰或模糊的照片。
2.利用HTML5 canvas getImageData() 方法(注:如欲详细了解getImageData()方法的详细介绍,请参考本人CSDN博客《【自制】html5图像边缘查找算法》一文),可以得到每张图片的每一像素的RGBA值的二维数组,(R - 红色 (0-255),G - 绿色 (0-255),B - 蓝色 (0-255),A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的))。
3.如目标物体颜色形状较为规则,可以取到每张图像中心的十字线上每一位置(如图1)的RGBA值。如目标物体颜色形状不规则,可以取每张图像中心的米字线上(如图2)每一位置的RGBA值,存入数组中,每张图像得到一个数组,最终得到若干组数组。
图1
图2
4.取到每张图片指定位置的RGBA值的数组后,将颜色RGB值看做一个三维空间,R,G,B分别为X,Y,Z坐标轴,坐标轴范围为0-255。计算数组中存储的每一颜色的RGBA值距离黑色-RGB(0,0,0)或白色-RGB(255,255,255)在三维空间的距离。假设数组中某一颜色的RGB值分别为a,b,c.则该颜色距黑色(0,0,0)三维空间距离的计算公式为√(a-0)^2+(b-0)^2+(c-0)^2(根号下a减0的平方加b减0的平方家c减0的平方)。将每一组数组中的值均计算距黑色的距离后求和,最终比较各组和的最大值和最小值的差值,差值越大表示该焦距下拍摄的图片色彩最为丰富,也就表示该焦距下拍摄的照片最清晰。差值最大的那组数组所代表的那张图片就是对焦后拍摄的图片了。
相关文章推荐
- Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能
- Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能
- 利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能
- 完美实现 IE10 下利用HTML5实现文件上传(图片上传)功能
- html5 利用canvas实现超级玛丽简单动画
- javascript和HTML5利用canvas构建猜牌游戏实现算法
- 技术族谱:软件开发相关知识体系的整理心得(图)
- 如何使用HTML5实现利用摄像头拍照上传功能
- 技术族谱:软件开发相关知识体系的整理心得(图)
- 完美实现 IE10 下利用HTML5实现文件上传(图片上传)功能
- 利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能
- OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
- 利用Ogre的渲染到材质技术实现Ogre截屏功能
- 技术族谱:软件开发相关知识体系的整理心得(图)
- 【原创】利用ajax技术实现动态双组合功能
- 技术族谱:软件开发相关知识体系的整理心得(图)
- 利用Domino相关技术来实现RSS
- 分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍
- html5 利用canvas实现简单的人物走动
- Javascript和HTML5利用canvas构建Web五子棋游戏实现算法