
C++
文章平均质量分 90
Lemon_jay
主要研究领域为图像处理、人工智能,有问题可以加QQ1059842670一起交流学习
展开
-
边缘检测(Canny、Sobel、Scharr)
C++、opencv处理图像之边缘检测(Canny、Sobel、Scharr),带滑动条可调节Canny和Sobel的参数opencv中Canny、Sobel、Scharr函数参数意义:void Canny(InputArray image,OutputArray edges, double threshold1, double threshold2, int apertureSize=...原创 2019-04-15 16:55:36 · 2157 阅读 · 0 评论 -
光流法(optical flow)运动检测
使用C++、opencv、光流法进行运动目标检测关于光流法的原理可参考:https://blog.youkuaiyun.com/pannn0504/article/details/78357607https://www.jianshu.com/p/144e6f8ca3b2https://blog.youkuaiyun.com/qq_22194315/article/details/79347726(较详...原创 2019-04-23 17:13:44 · 4309 阅读 · 0 评论 -
图像的仿射变换
使用C++、opencv进行图像的仿射变换仿射变换(Affine Transformation或Affine Map),又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。它保持了二维图形的“平直性”(直线经过变换之后依然是直线)和“平行性”(二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。更多仿射变换的原...原创 2019-04-23 17:58:50 · 998 阅读 · 0 评论 -
使用自定义内核给图像做卷积操作
使用C++、opencv创建自定义内核(卷积核),使用内核给图像做卷积操作关于图像卷积的原理及知识可参考博客https://www.cnblogs.com/bithuaning/p/6924978.html,说的非常详细。opencv中的相关API:void filter2D( InputArray src, OutputArray dst, int ddepth, ...原创 2019-04-19 11:32:06 · 2539 阅读 · 1 评论 -
前景检测(运动检测)
使用opencv进行视频的前景检测,也可作为运动检测代码:#include "stdafx.h"#include "opencv2/core.hpp"#include <opencv2/core/utility.hpp>#include <opencv2/imgproc.hpp>#include <opencv2/video/background_s...原创 2019-04-19 12:12:16 · 2155 阅读 · 3 评论 -
图像的傅里叶变换(将图像转为频率域再进行角度校正)
使用C++、opencv对图像进行傅里叶变换,再根据频谱图对原图进行旋转 离散傅里叶变换(Discrete Fourier transform,缩写为DFT),是指傅里叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DIFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即...原创 2019-04-19 18:05:36 · 10427 阅读 · 9 评论 -
opencv处理视频文件
使用C++、opencv处理视频文件视频也可以理解为图像,只不过是大量的图像一张一张联系在一起,即视频的一帧一帧,视频的每一帧都是一副图像,所以对视频的处理等同于处理图像,只不过需要对视频的每一张(每一帧)图像都进行处理。opencv中使用VideoCapture类读取视频文件,而不再是Mat,但视频文件的每一帧还是Mat类型。可从一个小示例中学习一下视频文件的处理:#inclu...原创 2019-04-24 19:50:11 · 3453 阅读 · 0 评论 -
使用高斯混合模型(GMM)分割图像
使用C++、opencv中的高斯混合模型(GMM)进行图像分割关于GMM聚类的原理及过程可参考博客:https://blog.youkuaiyun.com/lin_limin/article/details/81048411使用聚类的方法分割图像,即将图像的像素点值(通常用彩色图像,像素点值为一个三元数组(b,g,r))作为聚类的元素,从而将图像中所有的点分为n类,达到分割的效果。代码:#i...原创 2019-04-20 11:07:24 · 7145 阅读 · 1 评论 -
计算轮廓的特征参数(周长、面积、圆形度、周径比等)
使用C++、opencv计算轮廓的周长、面积、圆形度、周径比等特征参数图像的特征参数用于图像的模式识别(图像识别),获取越多种类的特征参数,可从中选择合适的进行组合,进而更好地区分各个物体。之前介绍过获取图像的灰度共生矩阵(https://blog.youkuaiyun.com/Lemon_jay/article/details/89455887)、不变矩(https://blog.youkuaiyun.com/...原创 2019-04-25 17:22:38 · 16846 阅读 · 3 评论 -
调节彩色图像亮度(基于不同的颜色空间)
使用C++、opencv基于不同的颜色空间调节图像亮度该博客简单介绍了RGB、YUV、HSI等颜色空间的相关知识,并附RGB转到另两个颜色空间的转换公式:https://www.cnblogs.com/justkong/p/6570914.htmlhttps://blog.youkuaiyun.com/sinat_26917383/article/details/70860910及https://w...原创 2019-05-11 19:33:02 · 5253 阅读 · 0 评论 -
查找轮廓的内切圆
使用C++、opencv查找轮廓的内切圆相关API:double threshold(InputArray src, OutputArray dst, double thresh,double maxval, int type)threshold()函数的作用是根据阈值对图像进行二值化第一个参数,InputArray类型的src,输入数组,填单通道,8或32位浮点类...原创 2019-04-23 11:53:23 · 4510 阅读 · 3 评论 -
使用K-means聚类方法分割图像
使用C++、opencv中的Kmeans进行图像分割K-means算法的原理K-means算法是基于距离相似性的聚类算法,通过比较样本之间的相似性,将形式的样本划分到同一个类别中,K-Means算法的基本过程为:初始化常数 ,随机初始化k个聚类中心。 重复计算以下过程,直到聚类中心不再改变: 计算每个样本与每个聚类中心之间的相似度,将样本划分到最相似的类...原创 2019-04-22 21:18:15 · 5391 阅读 · 2 评论 -
给图像加logo(不同大小图像叠加)
opencv中定义矩形:Rect(x,y,width,height)opencv中的Rect类的成员变量有x、y、 width、 height,分别为左上角点的坐标和矩形的宽和高。常用的成员函数有: Size()返回值为Size;area()返回矩形的面积;contains(Point)判断点是否在矩形内; inside(Rect)函数判断矩形是否在该矩形内;tl()返回左上角点坐...原创 2019-04-15 16:17:21 · 2496 阅读 · 2 评论 -
Canny边缘检测+孔洞填充
使用C++、opencv进行边缘检测+空洞填充相关重要API:Mat getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1));getStructuringElement函数会返回指定形状和尺寸的结构元素,返回类型为Mat第一个参数表示内核的形状,有三种形状可以选择:矩形:MORPH...原创 2019-04-16 11:01:36 · 5957 阅读 · 1 评论 -
Harris与ShiTomasi角点检测
#include "stdafx.h"#include <iostream>#include <vector>#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"using namespace cv;using namespace std;//全局变量Ma...原创 2019-04-16 12:22:38 · 280 阅读 · 0 评论 -
图像特征之傅里叶描述子
使用C++、opencv获取轮廓的傅里叶描述子傅里叶描述子是一种图像特征,具体来说,是一个用来描述轮廓的特征参数。其基本思想是用物体边界信息的傅里叶变换作为形状特征,将轮廓特征从空间域变换到频域内,,提取频域信息作为图像的特征向量。即用一个向量代表一个轮廓,将轮廓数字化,从而能更好地区分不同的轮廓,进而达到识别物体的目的。关于傅里叶描述子的概述可参考论文(http://www.doc88....原创 2019-04-17 11:08:29 · 29839 阅读 · 27 评论 -
图像分割之分水岭算法
使用C++、opencv进行分水岭分割图像分水岭概念是以对图像进行三维可视化处理为基础的:其中两个是坐标,另一个是灰度级。基于“地形学”的这种解释,我们考虑三类点:a.属于局部性最小值的点,也可能存在一个最小值面,该平面内的都是最小值点b.当一滴水放在某点的位置上的时候,水一定会下落到一个单一的最小值点c.当水处在某个点的位置上时,水会等概率地流向不止一个这样的最小值点对一个特...原创 2019-04-17 15:18:59 · 42343 阅读 · 12 评论 -
图像的阈值分割
使用C++、opencv对图像进行简单的阈值分割对图像进行颜色的阈值分割,往往不知道阈值设置为多少合适,需要不断测试,针对此问题,设置了阈值的滑动条,从而可以通过滑动滑动条快速找到阈值。最常见的阈值分割即为R、G、B的阈值分割,即判断像素点的R、G、B值是否大于或小于某一阈值,满足条件的点就保留或删除。本代码阈值分割的算法是直接按行按列依次遍历图像每个像素点,判断像素点的值是否满足分割...原创 2019-04-22 16:24:12 · 3375 阅读 · 0 评论 -
灰度共生矩阵
使用C++、opencv获取图像的灰度共生矩阵,即能量、熵、对比度、逆差矩等图像特征参数灰度共生矩阵,指的是一种通过研究灰度的空间相关特性来描述纹理的常用方法,通俗的说就是图像的一组关于纹理信息图像特征(能量、熵、对比度、逆差矩),可以将纹理数字化。灰度共生矩阵的原理和四个特征参数的计算公式可参考博客:https://blog.youkuaiyun.com/zhangxz259/article/de...原创 2019-04-22 17:18:36 · 5903 阅读 · 1 评论 -
获取图像的Hu不变矩
使用C++、opencv获取图像的Hu不变矩 矩函数在图像分析中有着广泛的应用,如模式识别、目标分类、目标识别与方位估计、图像编码与重构等。一个从一幅数字图形中计算出来的矩集,通常描述了该图像形状的全局特征,并提供了大量的关于该图像不同类型的几何特性信息,比如大小、位置、方向及形状等。图像矩的这种特性描述能力被广泛地应用在各种图像处理、计算机视觉和机器人技术领域的目标识别与方位估...原创 2019-04-22 18:23:05 · 2925 阅读 · 0 评论 -
矩形框裁图
用C++、opencv2.4之前版本写的一个矩形框裁图的代码,现在很多截图软件,应该用不上了,但是可以学习一下处理思路。代码如下:#include "stdafx.h"#include "cv.h" #include "highgui.h" #include <stdio.h> #include <cv.h> #include <highg...原创 2019-04-22 18:43:59 · 910 阅读 · 0 评论 -
基于对数变换和非线性变换的图像增强(图像亮度调节)
使用C++、opencv实现对图像的对数变换及非线性变换,实现图像增强相关API:void normalize(InputArray src, OutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray() )normaliz...原创 2019-05-13 16:24:01 · 5728 阅读 · 2 评论