OpenCV with iOS

OpenCV 是一种开源跨平台计算机视觉库,采用C/C++ 语言编写, 提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉的多种通用算法。致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升。

应用领域在多个领域:监控,网络图像和视频,航空和街道图像(图像拼接),无人飞行器,安全监控,生物医学分析等
使用了 图像处理,图像分割,人机互动,物体识别,运动跟踪,动作识别,机器视觉等技术手段。

计算机视觉

计算机视觉是将静止的图片或视频的数据转换成一种新的表达方式或者决策的过程。(它能识别出一张照片上的人脸数,一张照片的灰度图)信息都是由数据构成,人们主观的视觉反馈对应到计算机中则是非常复杂的过程。

视觉的影响因素在真实世界中是非常多的(天气,光线,反射,运动等等),所以给出一组数据信息很难被重建场景。角度不同,结果数据也是千差万别。想想一张照片的几千*几千像素的照片,每个像素点都是RGBA的数据组合。

iOS 图像处理实践

主要在涉及到图像处理,我们有许多的专业图像处理算法需要使用和翻译到不同平台,所以进行 iOS端的学习和集成。

图像增强 就是所谓的对应图片进行处理,可以调节亮度,饱和度,对比度,降噪,去雾,锐化,增强清晰度,减少噪点等。

IplImage是OpenCV中C语言的图像类型;
cv::Mat是OpenCV中C++语言的图像类型; 可以理解Mat派生出IplImage, 而 Mat则是一个矩阵结构,用于表达图像信息。 

矩阵操作是我们必须掌握和了解的,处理原理是进行矩阵运算而成。OpenCV 提供了一系列处理接口,不需要我们进行底层计算,但是一般我们使用openGL 进行着色器编写是需要实现一些转换。

OpenCV:
//灰度处理 
cvtColor(mat, grayMat, CV_BGR2GRAY);
//反色处理
 cvtColor(src, dst, COLOR_BGR2Lab);
 
openGL 着色器:
//灰度处理 
float gray   =  dot(vec3(texture2D(image,v_texcoord)),vec3(0.299,0.587,0.114));
gl_FragColor = vec4(gray,gray,gray,1.0);
//反色处理 
gl_FragColor = vec4(vec3(1.0-texture2D(image, v_texcoord)),1.0);

秉承使用高级接口的口号,我们只需要使用现成的接口进行处理即可。图像处理的方法、原理,会持续学习更新。

我的Demo地址

参考
OpenCV 中文站

OpenCV官方文档-CN

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文:http://catchzeng.com/2018/06/12/Learning-OpenCV-with-i...
    CatchZeng阅读 4,937评论 0 5
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,100评论 3 119
  • 今天,爸爸妈妈带我和姐姐去新城区博物馆参观。 我们刚进去,就被文物吸引住了。 首先看见的文物是抗日时期,日本军官用...
    雨田_2f85阅读 1,364评论 0 0
  • 得之,我幸。 失之,我命。 得之泰然,失之坦然。 时间久了会忘记,时间久了,也会想起 希望我亲爱的你,过的幸福,我...
    一步余里阅读 1,445评论 0 0

友情链接更多精彩内容