
OpenCV
硬族嵌入式
Life is short,Play more!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用10行代码自己写个人脸识别程序
引自简书上的一篇文章,引以学习。CV (Computer Vision)最近在研究CV的一些开源库(OpenCV),有一个体会就是在此领域,除了一些非常学术的机器学习, 深度学习等概念外,其实还有一些很有趣的现实的应用场景。比如之前很流行的微软的 https://how-old.net, 你使用自己指定或者上传的照片进行面部识别猜年龄。 如下图所示:细想一下这个很吸引眼球的转载 2017-05-04 12:58:15 · 903 阅读 · 0 评论 -
第十一天:图像阈值化简介
图像阈值化是图像处理的重要基础部分, 应用很广泛, 可以根据灰度差异来分割图像不同部分阈值化处理的图像一般为单通道图像(灰度图)阈值化参数的设置可以使用滑动条来debug阈值化处理易光照影响, 处理时应注意本节主要介绍的图像阈值化函数方法:固定阈值:threshold()自适应阈值:adaptiveThreshold()1、固定阈值---threshold()给原创 2017-09-16 13:41:12 · 580 阅读 · 0 评论 -
第十天:图像滤波
图像滤波滤波实际上是信号处理的一个概念,图像可以看成一个二维信号,其中像素点灰度值得高低代表信号的强弱高频:图像中变化剧烈的部分低频:图像中变化缓慢,平坦的部分根据图像高低频特性,设置高通和低通滤波器。高通滤波可以检测图像中尖锐、变化明显的地方,低通滤波可以让图像变得平滑,消除噪声干扰图像滤波是OpenCV图像处理的重要部分,在图像预处理方面应用广泛,图像滤波的好坏决定着后续处理的原创 2017-09-14 18:34:45 · 458 阅读 · 0 评论 -
第九天:图像几何变换
图像几何变换1、图像缩放-resize() Mat dstImg; resize(srcImg, dstImg, Size(1200, 800));src: 输入图像,Mat类型即可dst: 输出图像,当其非0时,由dsize确定尺寸dsize: Size类型,指定输出图像大小,如果它等于0,由下式计算:dsize = Size(round(fx*src.cols), rou原创 2017-09-14 17:48:47 · 336 阅读 · 0 评论 -
第七天:对比度亮度调整与通道分离
一、对比度亮度调整g(x) = a * f(x) + ba.参数f(x)表示原图像像素b.参数g(x)表示输出图像像素c.参数a(a>0),被称为增益(gain), 通常用来控制图像的对比度d.参数b通常被称为偏置(bias), 通常用来控制图像的亮度g(i,j) = a * f(i,j) + beg:#include "opencv2/opencv.hpp原创 2017-08-15 11:50:38 · 357 阅读 · 0 评论 -
第六天:图像的基本运算
图像本质来说就是一个矩阵,所以图像的基本运算与矩阵的运算基本雷同。eg:#include "opencv2/opencv.hpp"#include using namespace std;using namespace cv;void main(){ Mat img1 = imread("1.jpg"); Mat img2 = imread("2.jpg"); Mat d原创 2017-08-12 13:43:57 · 277 阅读 · 0 评论 -
第五天:opencv-访问图像像素
图像处理通常是对图像像素进行算法分析,所以了解像素的存储方式是尤为重要的。(1)、图像在内存中的存储方式图像矩阵的大小取决于所用的颜色模型(或者说通道数),灰度图像矩阵每行每列对应一个元素也就是灰度值,而彩色图像矩阵每行每列对应BGR三种元素的值。(2)、访问图像像素的方法a. 动态地址计算访问eg: ///动态地址访问 Mat img = imread("1.jpg")原创 2017-08-12 09:44:49 · 281 阅读 · 0 评论 -
第四天:鼠标截图+滑动条播放视频实例
一、主要功能(1)、鼠标左键按下拖动显示轨迹,鼠标左键弹起显示截图并保存截图到本地。(2)、视频播放时,滑动条同时显示播放帧的位置和视频帧率,滑动条拖动时可以实现同步指定帧播放。#include "opencv2/opencv.hpp"#include using namespace std;using namespace cv;Mat img = imread("1.原创 2017-08-04 17:26:46 · 544 阅读 · 0 评论 -
第三天:鼠标与滑动条相关操作
(1)、鼠标操作指定鼠标操作消息回调函数,setMouseCallback(),原型如下:CV_EXPORTS void setMouseCallback(coonst string& winname,MouseCallback onMouse,void* userdate = 0);winname----窗口名;onMouse----触发鼠标事件被调用的函数指针;原创 2017-08-03 15:39:10 · 293 阅读 · 0 评论 -
第二天:OpenCV基本的绘图函数
OpenCV常用绘图函数:line()函数------用于绘制直线circle()函数------用于绘制圆rectangle()函数------用于绘制矩形ellipse()函数------用于绘制椭圆fillPoly()/polylines()函数------用 于绘制多边形putText()函数------用于添加文字1)绘制直线-----line()原创 2017-08-02 08:55:36 · 428 阅读 · 1 评论 -
第一天:Mat类基础
(一)、OpenCV常用数据结构1)、Point类Point类数据结构表示二维坐标系的点,由坐标x, y指定的2D点,如:Point pt;pt.x = 20;pt.y = 10;其他类型:PointPoint2dPoint2fPoint2iPoint3dPoint3fPoint3i2)、Rect类Rect类用来表示矩形,成员有x,y原创 2017-07-30 11:57:10 · 387 阅读 · 0 评论 -
第八天:ROI与mask掩码
一、ROI介绍a. ROI—(region of interest)---感兴趣区域b. 一般为矩形区域 能够确定分析重点,减少处理时间,增加精度c. 定义方法: 使用Rect表示矩形区域或用Range设定行列范围ex1:Mat img = imread(“1.jpg”);Mat temp = imread(“logo.bmp”);Mat imgageROI原创 2017-08-16 10:08:58 · 1949 阅读 · 0 评论 -
Opencv摄像头标定
目标:最近在做双目测距的东西,其中遇到获取摄像头内外参数的问题,就学习了相关的一些东西,做了下简单的记录,本文的目标是获取任意一款摄像头的-内外参数开发环境:opencv2.4.9+Visual Studio 2013、opencv3.0.0-rc1+Ubuntu 14.04本文在windows下和linux下都进行的配置,但是发现linux下14.04这个版本的v4l2好像有问题,提示不原创 2016-08-18 17:42:03 · 3256 阅读 · 0 评论 -
第十二天、图像膨胀腐蚀
膨胀、腐蚀属于形态学的操作, 简单来说就是基于形状的一系列图像处理操作膨胀腐蚀是基于高亮部分(白色)操作的, 膨胀是対高亮部分进行膨胀, 类似“领域扩张”, 腐蚀是高亮部分被腐蚀, 类似“领域被蚕食”膨胀腐蚀的应用和功能: 消除噪声分割独立元素或连接相邻元素寻找图像中的明显极大值、极小值区域求图像的梯度其他相关:开运算、闭运算顶帽、黒帽形态学梯度原创 2017-09-18 10:18:59 · 610 阅读 · 0 评论