![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV学习
sxl545
图像处理,OpenCV,机器学习
展开
-
OpenCV原理理解001-形态学运算之膨胀腐蚀加深理解
经常使用opencv中的erode和dilate,但是自己是否真的深入理解内部原理了?答案是否定的。于是重新学习一下,加深理解。很多学习资料只是文字描述了原理,用效果图展示一下最终效果。也许有的人通过文字描述,就能充分理解了内部变化,但是我不行。这次,我想深入了解一下像素值的变化,更好的理解膨胀和腐蚀的原理。下面测试在vs2013中利用插件ImageWatch完成,通过观察像素值的变化,我觉得自己...原创 2018-06-22 15:16:11 · 482 阅读 · 0 评论 -
OpenCV_tutorials 05 core module-Changing the contrast and brightness of an image
#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //载入源图像,彩色图 cv::Mat src = cv::imread("C:\\Users\\dell\\Desktop\\xin1.jpg", IMREAD_COLOR); //检查源图像的有效性 ...原创 2018-08-09 16:29:50 · 271 阅读 · 0 评论 -
OpenCV_tutorials 07 core module-Random generator and text with OpenCV
在这篇教程可以学会:使用随机数发生器RNG类以及如何获取服从均匀分布的随机数 使用putText在OpenCV窗口上显示文本目录1 关于RNG类2 putText函数3 我的练习1 关于RNG类core.hpp中关于RNG类声明:/*! Random Number Generator The class implements RNG using Mu...原创 2018-08-14 17:28:52 · 135 阅读 · 0 评论 -
OpenCV_tutorials 06 core module-Basic Drawing
在进行图像处理时,为了更加直观的观察处理效果,经常需要在图中画出一些形状。此教程主要介绍OpenCV常见的绘画功能:目录1.画直线2.画矩形3.画圆4.画椭圆1.画直线函数声明://! draws the line segment (pt1, pt2) in the imageCV_EXPORTS_W void line(CV_IN_OUT Mat& i...原创 2018-08-13 10:06:33 · 169 阅读 · 0 评论 -
OpenCV 利用Directory类实现文件夹遍历(只适用于2.x版本的opencv)
最近,我在进行新的工作中,需要对多张图片进行测试,一一测试太慢了,于是想到将需要处理的图片放到一个文件夹中,对文件夹中所有图像进行遍历,这样可以省时省力.参考博客https://blog.csdn.net/watkinsong/article/details/9227439中的内容,我在VS2010中实践了一番:#include <opencv2/opencv.hpp>u...原创 2018-08-30 23:54:05 · 3355 阅读 · 4 评论 -
opencv 4.0.0教程系列01.1-core模块-mat_the_basic_image_container
Mat - The Basic Image Container {#tutorial_mat_the_basic_image_container}@next_tutorial{tutorial_how_to_scan_images}Goal 目标We have multiple ways to acquire digital images from the real world: digit...翻译 2019-03-25 23:32:13 · 401 阅读 · 0 评论 -
opencv 4.0.0 教程说明
OpenCV 教程 {#tutorial_root}The following links describe a set of basic OpenCV tutorials. All the source code mentioned here is provided as part of the OpenCV regular releases, so check before you star...翻译 2019-03-23 16:22:20 · 1869 阅读 · 0 评论 -
opencv 4.0.0教程系列01-core模块简介
The Core Functionality (core module) {#tutorial_table_of_content_core}Here you will learn the about the basic building blocks of the library. A must read and know for understanding how to manipulate ...翻译 2019-03-23 16:53:37 · 367 阅读 · 0 评论 -
opencv 4.0.0教程系列01.3-core模块-mat_mask_operations
Mask operations on matrices 矩阵掩码操作@prev_tutorial{tutorial_how_to_scan_images}https://blog.csdn.net/weixin_42142612/article/details/88881229@next_tutorial{tutorial_mat_operations}Mask operations on...翻译 2019-03-31 16:37:01 · 279 阅读 · 0 评论 -
opencv 4.0.0教程系列01.2-core模块-how_to_scan_images
How to scan images, lookup tables and time measurement with OpenCV {#tutorial_how_to_scan_images}如何扫描图像,查找表和时间测量?@prev_tutorial{tutorial_mat_the_basic_image_container}https://blog.csdn.net/weixin_4...翻译 2019-03-28 23:36:10 · 384 阅读 · 0 评论 -
Opencv颜色空间转换---BGR和HSV详解
目录色彩空间简介 BGR颜色空间 HSV颜色空间 BGR和HSV之间的转换 BGR转HSV HSV转BGR OpenCV中的实现 相关函数说明 BGR2HSV HSV2BGR 实例说明 代码 参考资料色彩空间简介色彩是人的眼睛对于不同频率的光线的不同感受,色彩既是客观存在的(不同频率的光)又是主观感知的,有认识差异。所以人类对于色彩的认识经历了极为漫长的过程,直到...原创 2019-09-12 11:18:36 · 17329 阅读 · 1 评论 -
彩色图像自动色阶调整和自动对比度调整
1.自动色阶调整算法原理:(1)分别统计每个通道的灰度直方图;(2)对每个通道,利用LowCut和HighCut,计算灰度最小值min和最大值max;(3)对每个通道分别建立分段线性拉伸查找表, f(g) = 0 g<=min f(g) = 255 g>=max f(g) = ((g-min)/(max-min)) * 255 min<g<max(4)对每...原创 2018-07-05 16:14:40 · 2593 阅读 · 2 评论 -
OpenCV_tutorials 04 imgproc module - Affine Transformations
1.仿射变换仿射变换(Affine Transformation 或Affine Map)是一种二维坐标(x, y)到二维坐标(u, v)的线性变换。仿射变换保持了二维图形的“平直性”(直线经仿射变换后依然为直线)和“平行性”(直线之间的相对位置关系保持不变,平行线经仿射变换后依然为平行线,且直线上点的位置顺序不会发生变化)。非共线的三对对应点确定一个唯一的仿射变换。仿射变换通过一系列原子变换复合...原创 2018-07-11 16:37:50 · 433 阅读 · 0 评论 -
OpenCV_tutorials 03 core module-Adding(blending) two images
#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ double alpha = 0.5; double beta; double input; cout << "please input alpha(0 - 1)" << endl; ...原创 2018-06-29 09:53:41 · 136 阅读 · 0 评论 -
OpenCV源码阅读001-自适应阈值分割adaptiveThreshold
OpenCV自带的adaptiveThreshold首先,查看一下build\doc\opencv2refman中关于adaptiveThreshold的说明:C++: void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int...原创 2018-06-02 00:31:17 · 2035 阅读 · 1 评论 -
OpenCV CV_RGB2GRAY与CV_BGR2GRAY的区别
平时处理图像的时候,很少用到彩色信息,一般都是直接转换为灰度图。转换灰度图用的cvtColor的第三个参数中有两个参数,我一直没太注意区别,CV_RGB2GRAY与CV_BGR2GRAY。今天通过一个简单的测试区分一下。测试代码如下:#include <opencv2\opencv.hpp>using namespace std;using namespace cv;int ...原创 2018-06-25 17:03:10 · 46115 阅读 · 7 评论 -
OpenCV_tutorials 01 core module -How to scan images, lookup tables and time measurement with OpenCV
#include <opencv2\opencv.hpp>using namespace std;using namespace cv;void ScanImgaeAndReduceC(Mat &src, const uchar * const table, Mat &dst);void ScanImageAndReduceIterator(Mat &...原创 2018-06-27 10:45:22 · 174 阅读 · 0 评论 -
atan2相关知识汇总
1.atan2的含义C 语言里 double atan2(double y,double x) 返回的是原点至点(x,y)的方位角,即与 x 轴的夹角。返回值的单位为弧度,取值范围为(-π, π]。结果为正表示从 X 轴逆时针旋转的角度,结果为负表示从 X 轴顺时针旋转的角度。若要用度表示反正切值,请将结果再乘以 180/π。另外要注意的是,函数atan2(y,x)中参数的顺序是倒置的,atan2...原创 2018-07-09 16:42:07 · 44944 阅读 · 1 评论 -
关于双线性插值的学习资料汇总
1.OpenCV ——双线性插值(Bilinear interpolation)点击打开链接介绍了双线性插值的原理和计算方法,并且提到了两点优化,不过关于优化解释的不够详细2.图像处理界双线性插值算法的优化点击打开链接介绍了利用整数代替浮点数进行运算加速的优化3.双线性插值算法及需要注意事项点击打开链接介绍了源图像和目标图像几何中心的对齐4.OpenCV中resize函数五种插值算法的实现过程点击...原创 2018-07-16 14:24:57 · 307 阅读 · 0 评论 -
OpenCV_tutorials 02 core module-Mask operations on matrices
#include<iostream>#include<opencv2/highgui/highgui.hpp>#include<opencv2/core/core.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;void ...原创 2018-06-28 11:42:37 · 202 阅读 · 0 评论 -
利用透视变换完成车牌图像校正
1.透视变换原理:可以看大牛的博客图像几何变换之透视变换点击打开链接warpPerspective函数点击打开链接2.OpenCV实现车牌图像校正在车牌识别之前,一般都需要对车牌图像进行校正,校正的图像便于后续字符分割。#include <opencv2\opencv.hpp>using namespace std;using namespace cv;int main()...原创 2018-07-16 16:21:50 · 6811 阅读 · 1 评论 -
一种基于平均值和平均偏差的图像亮度检测方法
1.基础知识(1)平均值(2)平均偏差平均偏差是数列中各项数值与其算术平均数的离差绝对值的算术平均数。平均偏差是用来测定数列中各项数值对其平均数离势程度的一种尺度。平均偏差可分为简单平均偏差和加权平均偏差。简单平均偏差如果原数据未分组,则计算平均偏差的公式为:加权平均偏差在分组情况下,平均偏差的计算公式为:为什么要取离差的绝对值?因离差和为零,离差的平均数不能将离差和除以离差的个数求得,而必须将离...原创 2018-07-03 21:17:11 · 7527 阅读 · 5 评论 -
OpenCV中踩过的坑系列 01- Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP)
目录函数介绍opencv中内存管理踩坑举例参考资料函数介绍函数 Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP);的声明: /** @overload @param rows Number of rows in a 2D array. @param c...原创 2019-09-17 18:02:25 · 6029 阅读 · 2 评论