OpenCV源码杂记
文章平均质量分 89
初期主要以阅读OpenCV源码,学习图像处理理论知识为主;
2know_clay
一个人最大的幸福,莫过于在人生的中途,在最富有创造力的壮年,发现自己此生的使命。
展开
-
手撕OpenCV源代码之直方图均衡化
直方图均衡化之前的文章中陆续介绍了OpenCV的编译,色彩空间以及滤波器,甚至DNN的简单介绍,挖了不少坑,目前很多都还没有填上,东西很多,也很杂乱。为了方便读者学习,从本文开始,我将从OpenCV的基本的图像处理算法开始,逐步系统的介绍OpenCV的各个模块的功能。本文先从直方图均衡化开始介绍。网上关于OpenCV API使用方法的文章非常多,但是对于背后的算法原理介绍就比较少了,所以在后续的...原创 2019-03-27 23:53:13 · 586 阅读 · 0 评论 -
OpenCV源码交叉编译android库
OpenCV源码编译android库之前的文章中介绍过如何源码编译OpenCV库,但是当时编译的是pc的cpu版本,但是在使用中,很多代码最终要运行在手机等便携式设备上,所以本文介绍一下,如何使用OpenCV源码检查编译构建android的opencv库。交叉编译环境构建首先需要下载android NDK,下载地址: https://developer.android.google.cn/n...原创 2019-03-10 15:34:42 · 3221 阅读 · 3 评论 -
手撕OpenCV源码之图像金字塔
图像金字塔图像金字塔式多分辨率处理的一种方法,多分辨率处理理论有效的统一了多个学科的技术,多分辨率处理技术包括来自信号处理的子带编码,来自数字语音识别的正交滤波及金字塔图像处理。如其名称所示,多分辨率理论涉及多个分辨率下的信号(或图像)表示与分析。这种方法的优势很明显,,某种分辨率下无法检测的特性,可以在另外的分辨率下很容易检测。我们观察图像时,看到的通常是由相似纹理和灰度级连成的区域,他们相...原创 2019-11-16 16:30:22 · 567 阅读 · 0 评论 -
OpenCV DNN(二)——Net
OpenCV DNN之Net好久没有更新了,作为2019年的首发,希望2019年会是腾飞的一年,祝愿大家2019一切都很美好,能在公众号收货更多的干货,大家能一起进步,心想事成。上一篇博文最后留下了一个尾巴,是关于Net的setInput和forward,当时分别介绍了,这两个函数的定义。本文暂时不深入介绍这两个函数,从OpenCV DNN的Net类入手,拆解OpenCV中DNN的结构。本文主...原创 2019-01-01 13:07:19 · 11059 阅读 · 3 评论 -
OpenCV4.0 DNN-googleNet
OpenCV4.0 DNN-googleNetOpenCV 4.0最近发布,其中一大亮点便是加入DNN;之前的文章中介绍了OpenCV 4.0的编译,本系列就通过GoogleNet的demo来窥探OpenCV 4.0的DNN。核心函数介绍首先需要准备GoogleNet的prototxt,caffemodel,和synset_words.txt;这个在网上很容易下载到。然后就是需要一张RGB或...原创 2018-12-09 01:37:17 · 6037 阅读 · 0 评论 -
OpenCV之YUV色彩格式总结
YUV色彩格式总结上一篇文章结合OpenCV的源代码介绍了BGR转YUV的方法(YUV444)。本文主要介绍YUV的3种采样,YUV444,YUV422, YUV420,以及后两种格式转BGR的方法,和BGR转YUV系列的方法。本系列介绍的公式都是结合OpenCV根据OpenCV的计算方法提供的。YUV格式的采样方式YUV格式有3中采样方式,分别是YUV444、YUV422、YUV420;其...原创 2018-12-02 22:18:45 · 8600 阅读 · 1 评论 -
OpenCV 之BGR2YUV
YUV系列之BGR2YUV在OpenCV中imgproc模块下的cvtColor API。这个API的主要功能是对图片做色彩空间转换,使用起来很方便,但是背后的转换理论多少有些繁琐,但是也不难。因此今天在这篇文章中对色彩空间转换的理论进行梳理。OpenCV支持的色彩非常丰富,我们会在以后的系列中逐步介绍,这个系列主要介绍YUV色彩空间与RGB或者BGR空间之间的转换,同时借此了解OpenCV中...原创 2018-11-11 00:11:41 · 17422 阅读 · 2 评论 -
编译OpenCV4.0 源码
编译OpenCV 4.0源码之前写过几篇关于OpenCV的博客,都是基于openCV 3.14写的,10月份OpenCV发布了4.0的bate版本,我就切换到4.0版本上来。之后的博客都会是基于4.0版本的。本文主要介绍一下三个方面的内容:OpenCV 4.0的改进编译OpenCV 4.0源码的方法源码编译中遇到的问题及解决方法这三方面的问题都是比较基础的,但是对于新手可能有些复杂。...原创 2018-11-03 00:22:59 · 7026 阅读 · 1 评论 -
手撕OpenCV源码之resize_linear原理
双线性插值双线性插值,顾名思义就是在x方向和y方向上进行线性差值.如下图,在节点 A(x1,y1)和节点B(x2,y2)之间插入节点C(x,y). A C B我们知道,线性差值,数据的值和距离是成比例的,因此: x−x1x2−x1=y−y1y2−y1x−x1x2−x1=y−y1y2−y1\cfrac{x-x_1}{x_2-x_1} = ...原创 2018-04-09 20:47:56 · 1933 阅读 · 0 评论 -
手撕OpenCV源码之resize(INTER_AREA)
手撕OpenCV源码之resizeresize在modules/imgproc/src/文件件中,首先看resize API的函数实现:void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=I...原创 2018-06-03 13:07:57 · 18870 阅读 · 8 评论 -
手撕OpenCV源码之filter2D(一)
opencv中的filter2D函数原型官方解释 网站 CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor=Point(-1,-1...原创 2018-05-01 22:20:51 · 7407 阅读 · 1 评论 -
手撕OpenCV源码之GaussianBlur
手撕OpenCV源码之GaussianBlurGaussianBlur API解析首先看源码: void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize, double sigma1, double sigma2, ...原创 2018-06-03 14:31:15 · 4406 阅读 · 1 评论