![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Opencv_Learning-Diary
OliverkingLi
耶耶
展开
-
seam carving算法
这两天看到一个很好玩的图像裁剪算法,是十年前的提出的一个很经典的算法。原来的图像裁剪算法大多会使得图像失真,而这个算法提出一种基于能量的原理来相适应的去裁剪。简单来说就是给每个像素值赋予一个能量值,然后根据这个像素值得8连通域进行动态规划求取最小值,然后逐行或逐列地应用这一算法会获得一条能量线,其实就是相邻两行(列)的最小像素值的像素所在连线,然后将其从原始图像删除,具体删除多少条这样的能...原创 2018-07-09 15:03:24 · 6067 阅读 · 9 评论 -
opencv学习之亚像素角点检测
// opencv2413_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace cv;using namespace std;Mat g_srcImage, g_grayImage;int g_maxCornerNumber = 33;int g_m原创 2017-04-29 10:48:05 · 2791 阅读 · 0 评论 -
opencv学习之Shi-Tomasi角点检测
// opencv2413_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace cv;using namespace std;Mat g_srcImage, g_grayImage;int g_maxCornerNumber = 33;int g_m原创 2017-04-29 10:31:20 · 808 阅读 · 2 评论 -
opencv学习之角点检测
// newbuild_opencv1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "opencv2\imgproc\imgproc.hpp"#include "opencv2\highgui\highgui.hpp"#includeusing namespace cv;using namespace std;#defin原创 2017-02-24 17:28:31 · 425 阅读 · 0 评论 -
opencv学习之例子直方图对比
#include"stdafx.h"#include #include #include #include #include#include #include #include using namespace cv;using namespace std; int main(){ system("color 2F"); Mat srcImage_base, hsvI原创 2017-02-04 13:02:18 · 1228 阅读 · 0 评论 -
opencv学习之直方图绘制
图像直方图就是用表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数,可以借助观察该直方图了解如何调整亮度分布。直方图意义如下:.直方图是图像中像素强度分布的图形表达式.它统计了每一个强度值所具有的像素个数绘制H-S直方图示例:#include"stdafx.h"#include #include #include #include #include原创 2017-02-04 10:27:18 · 926 阅读 · 0 评论 -
opencv学习之图像修补
#include"stdafx.h"#include #include #include #include #include#include #include #include using namespace cv;using namespace std; #define WINDOW_NAME1 "【原始图】"#define WINDOW_NAME2 "【修补后的图】原创 2017-02-04 09:44:33 · 692 阅读 · 0 评论 -
opencv学习之分水岭算法
原理详细转自:http://blog.csdn.net/Kaido0/article/details/52847433?locationNum=2&fps=1示例:#include"stdafx.h"#include #include #include #include using namespace cv;using namespace std; #define WIN原创 2017-02-01 21:33:33 · 561 阅读 · 0 评论 -
opencv学习之寻找凸包,使用多边形包围轮廓
#include"stdafx.h"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include using namespace cv;using namespace std;#define WINDOW_NAME1 "【原始图窗口】"#define WINDOW_NAME2原创 2017-01-30 20:59:31 · 4057 阅读 · 0 评论 -
opencv学习之寻找轮廓并绘制轮廓
// opencv_1.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include#include#include#includeusing namespace cv;using namespace std;int main(){ system("color 1A"); Mat srcImage = imread("E:\\pic原创 2017-01-28 22:08:27 · 4275 阅读 · 0 评论 -
opencv学习之SURF特征检测提取演示
// opencv2413_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include#include#includeusing namespace cv;using namespace std;int main(){ system("color 2F"); Ma原创 2017-04-29 11:31:58 · 1545 阅读 · 0 评论 -
求视频帧差
转自:http://blog.csdn.net/abcjennifer/article/details/6621986// Videro_decode.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include #include #include #include #include #include#in原创 2017-06-03 11:05:04 · 540 阅读 · 0 评论 -
opencv基于颜色的物体识别
#include <iostream>#include <string>// #include <string.h>#include <vector>#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"using namespace cv...原创 2018-06-13 15:27:55 · 4949 阅读 · 0 评论 -
opencv实现opencv3.3.0的DNN模块功能
DNN模块介绍在OpenCV3.3版本发布中把DNN模块从扩展模块移到了OpenCV正式发布模块中,当前DNN模块最早来自Tiny-dnn,可以加载预先训练好的Caffe模型数据,OpenCV做了近一步扩展支持所有主流的深度学习框架训练生成与导出模型数据加载,常见的有如下:CaffeTensorFlowTorch/PyTorch原创 2017-09-18 16:37:37 · 7314 阅读 · 2 评论 -
opencv3+Zbar二维码矫正
形变和畸角变换// Zbar_code.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#include#includeusing namespace std;using namespace cv;using namespace zbar;#define GRAY_THRESH 150原创 2017-09-26 11:35:01 · 2320 阅读 · 0 评论 -
opencv3+Zbar识别二维码--梯度运算
// Zbar_code.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#includeusing namespace std;using namespace cv;using namespace zbar;Rect DrawXY(const Mat image, Mat &imageOu原创 2017-09-26 10:21:40 · 1313 阅读 · 0 评论 -
opencv3+Zbar识别二维码--水平垂直交叉定位
http://blog.csdn.net/dcrmg/article/details/52132313成像比较清晰,二维码占据整个图像的比例达到4成以上的标准二维码,用opencv和zbar识别还是很容易的,而且zbar的鲁棒性很好。// Zbar_code.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#in原创 2017-09-26 09:47:16 · 2805 阅读 · 0 评论 -
基于windows10和VS2015环境下配置zbar-code开发环境
1.去Zbar官网下载对应版本Zbar安装:http://zbar.sourceforge.net/download.html 此次下载的是windows版本0.10此处注意勾选“Development Headers and Libraries”安装完成路径下,获得解压缩的包2.visual studio 2015配置Zbar开发环境原创 2017-09-23 17:06:43 · 2497 阅读 · 2 评论 -
条形码和二维码的原理简介
转自:http://blog.csdn.net/zxc024000/article/details/51135332http://blog.csdn.net/u012611878/article/details/53167009一维码:一、概念条形码由宽度不同、反射率不同的条(黑色)和空(白色)组成。按照特定的编码规则编制,用来表达一组数字、字母信息转载 2017-09-23 16:48:50 · 5201 阅读 · 0 评论 -
基于opencv3实现运动物体识别
一:背景减法 对于一个稳定的监控场景而言,在没有运动目标,光照没有变化的情况下,视频图像中各个像素点的灰度值是符合随机概率分布的。由于摄像机在采集图像的过程中,会不可避免地引入噪声,这些灰度值以某一个均值为基准线,在附近做一定范围内的随机振荡,这种场景就是所谓的“背景”。 背景减法(Background subtraction)是当前运动目标检测技原创 2017-09-22 22:26:30 · 16594 阅读 · 19 评论 -
SIFT检测算法的实现
原理部分以后慢慢完善,目前在忙着学英语哈哈..................代码:(练手)// opencv_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include#include#include#includeusing namespace cv;usi原创 2017-08-22 21:56:09 · 810 阅读 · 0 评论 -
opencv学习之直方图均衡化
原理简介:直方图均衡化是图像灰度变换的一个重要应用,广泛应用于图像增强处理,由于原始图像的灰度级别是随机的,直方图的图形高低不一,直方图均衡化就是使直方图大致平和的方法。直方图均衡化就是通过拉伸像素强度分布范围来增强图像对比度的一种方法。均衡化直方图只是近似分布,均衡化后的图像动态范围扩大了;但是实质是扩大了量化间隔,量化级别反而减少了,因此原来灰度不同的像素经过处理后可能变的相同,形成一片相原创 2017-01-28 20:38:25 · 1048 阅读 · 0 评论 -
opencv学习之仿射变换
仿射变换又称仿射映射,是指在几何中一个向量进行一次线性变换并接上一个平移,变换为两一个向量空间。一个任意的仿射变换都能表示为乘以一个矩阵,接着再加上一个向量的形式。仿射变换可以表示以下三种变换形式:1. 旋转2. 平移3. 缩放示例:原创 2017-01-28 17:10:28 · 582 阅读 · 0 评论 -
opencv简单学习方框滤波,均值滤波,高斯滤波
代码:#include"stdafx.h"#include #include "opencv2/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui.hpp"#include"opencv2/core/core.hpp"#include using namespace cv;using na原创 2017-01-04 17:49:08 · 597 阅读 · 0 评论 -
opencv学习实现简单的图像离散傅里叶变换
离散傅里叶变换就是将图像从空间域转换到频域,这一转换基本原理为:任一函数都可以表示成无数个正弦和余弦函数的和的形式,二维图像的傅里叶变换可用公式表示为:其中,f是空间域,F是频域,转换之后的频域值是复数,因此显示傅里叶变换之后的结果需要使用实物图像加虚数图像或者幅度图像加相位图像的形式。示例;#include"stdafx.h"#include #include "open原创 2017-01-04 16:35:42 · 2326 阅读 · 0 评论 -
opencv学习三种常用方法访问操作图像像素
#include"stdafx.h"#include #include "opencv2/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui.hpp"#include using namespace cv;using namespace std;void colorReduce_point(原创 2017-01-03 23:52:11 · 1071 阅读 · 0 评论 -
opencv实现滑动条控制图片的对比度和亮度变换
一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。图像亮度和对比度的调整操作,其实属于图像处理变换中比较简单的一种——点操作。点操作有一个特点,仅仅根据输入像素值(有时可加上某些全局信息或参数),来计算相应的输出像素值。这类算子包括亮度(brightness)和对比度(contrast)调整,以及颜色校正(colorcorrection)和变换(transfor原创 2017-01-02 21:33:10 · 1978 阅读 · 0 评论 -
基于opencv源程序的滑动条实现阈值变换
#include"stdafx.h"#include #include "opencv2/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui.hpp"#include using namespace cv;using namespace std;// 设定阈值初值Mat img;int翻译 2017-01-02 21:28:53 · 686 阅读 · 0 评论 -
ROI感兴趣区域opencv初级变换学习
// opencv_learning.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace cv;using namespace std;// 函数定义声明bool ROI_Image();bool Linear_Image()原创 2017-01-02 20:43:17 · 503 阅读 · 0 评论 -
Win10+Visual Studio 2015Proofessional+opencv3.0完美配置
1. 去opencv的官网下载opencv((http://opencv.org/)对应自己电脑的操纵系统下载。2. 双击,选择安装目录,自定义解压安装到指定目录下面,最后得到如下所示的文件,3. 打开计算机属性,选个高级设置,环境变量,选择系统环境变量,点击“新建” 4. 点击“path”,新建两个环境变量路径,如图5.原创 2016-03-16 19:58:54 · 1895 阅读 · 0 评论 -
opencv学习日记之单通道分离多通道融合
代码:#include"stdafx.h"#include#include #include #include using namespace cv;using namespace std;bool LinearBlending();void splitImage();void colorReduce(Mat & inputImage, Mat & outputImage原创 2016-04-08 22:18:46 · 2361 阅读 · 0 评论 -
opencv学习日记之图像融合
这里的图像叠加指线性叠加,设图像A的像素为fA(x),图像B的像素为fB(x),叠加系数为α,则线性叠加操作为:α为0-1之间的值,从上面也可以看出,叠加必需保证两幅输入图像的尺寸大小相同。void addWeight(InputArray src1,double alpha,InputArray src2,double beta,double gamma,Output原创 2016-04-06 11:39:31 · 1839 阅读 · 0 评论 -
opencv学习之中值滤波和双边滤波
继上一篇线性滤波之方框滤波,均值滤波,高斯滤波之后,加入非线性滤波操作中值滤波和双边滤波。http://blog.csdn.net/oliverkingli/article/details/54022075代码;#include"stdafx.h"#include #include "opencv2/imgproc.hpp"#include "opencv2/imgcodec原创 2017-01-04 21:43:59 · 801 阅读 · 0 评论 -
opencv学习图像处理形态学腐蚀和膨胀
膨胀就是求局部最大值的操作(dilate),腐蚀就是求局部最小值的操作(erode),无论是膨胀操作还是腐蚀操作就是蒋图片或者额图像的一部分区域,标记为A与核标记为B进行卷积。代码:#include"stdafx.h"#include #include "opencv2/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include "op原创 2017-01-06 14:41:33 · 855 阅读 · 0 评论 -
opencv学习之重映射
重映射就是把一幅图中某个像素放置到另一个图片指定的位置;为此需要知道映射关系:G(x,y) = f(h(x,y))G(x,y)是目标图像,f(x,y)是原图像,h(x,y)是作用于(x,y)的映射方法函数。其中重映射主要通过操作图像像素点完成。基本重映射实例如下:// opencv_1.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#incl原创 2017-01-28 00:34:50 · 556 阅读 · 0 评论 -
opencv学习之霍夫变换
原理部分参见:http://blog.csdn.net/poem_qianmo/article/details/26977557标准霍夫变换示例:// opencv_1.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include#include#includeusing namespace cv;using namespace std;原创 2017-01-27 10:04:26 · 744 阅读 · 0 评论 -
基于opencv的边缘检测
一;边缘检测的一般步骤:(1)滤波,经常使用高斯滤波 (2)增强 (3)检测,常使用阈值方法检测1,canny算子:步骤:【1】消除噪声 【2】计算梯度幅值和方向 【3】非极大值抑制原创 2017-01-18 20:38:59 · 645 阅读 · 0 评论 -
opencv学习之模板匹配
模板匹配失在一幅图中寻找与另一幅模板图最匹配的部分的技术。模板匹配不是基于直方图的,而是在通过输入图像上进行滑动,对实际的图像块和输入图像进行匹配的方法。模板匹配由MatchTemplate()函数完成,其匹配模式有以下六种:模板匹配示例:#include"stdafx.h"#include #include #include #include #include原创 2017-02-05 10:01:37 · 920 阅读 · 0 评论 -
opencv学习之图像阈值化
为了从一副图像中提取出我们需要的部分,应该用图像中的每一个像素点的灰度值与选取的阈值进行比较,并作出相应的判断。(注意:阈值的选取依赖于具体的问题。即:物体在不同的图像中有可能会有不同的灰度值。一旦找到了需要分割的物体的像素点,我们可以对这些像素点设定一些特定的值来表示。(例如:可以将该物体的像素点的灰度值设定为:‘0’(黑色),其他的像素点的灰度值为:‘255’(白色);当然像素点的灰度值可以任原创 2017-01-10 10:38:51 · 587 阅读 · 0 评论 -
opencv学习imresize,pyrUp,pyrDown函数对图像进行缩放操作
我们在opencv中进行图片的尺寸缩放的方法一般为;1,resize函数最为直接2,pyrDown和pyrUp函数,即为图像金字塔相关的两个函数,对图像进行向上向下采样操作图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理原创 2017-01-10 09:55:26 · 3186 阅读 · 0 评论