![](https://img-blog.csdnimg.cn/20200526182332713.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenCV:从零到一
以实例代码为线索,配上大量的注释,以及部分官方文档的翻译。旨在提高对代码的理解,深入了解函数功能,略微提高英语水平。有错误的地方欢迎大家批评指正,我们共同进步,共同进步........(有没有觉得专栏名字很押韵hhh)
Dnils
这个作者很懒,什么都没留下…
展开
-
【OpenCV:从零到一】19:轮廓发现
前言这是我《OpenCV:从零到一》专栏的第十九篇博客,想看跟多请戳这。本文概要findContours发现轮廓drawContours绘制轮廓案例代码大概内容: 轮廓发现 。#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace cv;Mat src, dst;const char* output原创 2020-06-27 23:08:37 · 125 阅读 · 0 评论 -
【OpenCV:从零到一】18:模板匹配
前言这是我《OpenCV:从零到一》专栏的第十八篇博客,想看跟多请戳这。本文概要matchTemplateminMaxLoc案例代码大概内容:模版匹配 。#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace cv;Mat src, temp, dst;int match_method = TM_原创 2020-06-27 22:33:09 · 197 阅读 · 0 评论 -
【OpenCV:从零到一】17:直方图均衡化、计算、比较、反向投影
前言这是我《OpenCV:从零到一》专栏的第十七篇博客,想看跟多请戳这。本文概要equalizeHistsplitcalcHistcalcBackProjectcompareHistmixChannels案例代码大概内容:直方图均衡化和计算 。#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace原创 2020-06-27 01:00:50 · 133 阅读 · 0 评论 -
【OpenCV:从零到一】16:像素重映射
前言这是我《OpenCV:从零到一》专栏的第十六篇博客,想看跟多请戳这。本文概要remapat案例代码大概内容:像素重映射 。#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace cv;Mat src, dst, map_x, map_y;const char* OUTPUT_TITLE = "remap demo";int index原创 2020-06-26 14:10:31 · 143 阅读 · 0 评论 -
【OpenCV:从零到一】15:霍夫变换-直线、圆
前言这是我《OpenCV:从零到一》专栏的第 篇博客,想看跟多请戳这。本文概要HoughLinesHoughLinesPHoughCircles案例代码大概内容: 。运行效果:解析及注意事项全注释代码翻译笔记原创 2020-06-26 13:21:13 · 158 阅读 · 0 评论 -
【OpenCV:从零到一】14:边缘检测|Scharr滤波器|Sobel算子|Laplacian算子|Canny算子
前言这是我《OpenCV:从零到一》专栏的第十三篇博客,想看跟多请戳这。本文概要ScharrSobelLaplacianCannythresholdconvertScaleAbsScharr滤波器、Sobel算子、Laplacian算子、Canny算子的区别算子、滤波器、卷积核三者的区别案例代码大概内容: 。运行效果:解析及注意事项全注释代码翻译笔记...原创 2020-06-25 14:38:15 · 215 阅读 · 0 评论 -
【OpenCV:从零到一】13:卷积边缘处理(borderType)
前言这是我《OpenCV:从零到一》专栏的第十三篇博客,想看跟多请戳这。本文概要copyMakeBorder为图片添加边框复习RNG案例代码大概内容:循环体实现切换边界类型(也可以用createTrackbar)。#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace cv;int main(int argc, char** argv) {原创 2020-06-24 13:29:27 · 1053 阅读 · 0 评论 -
【OpenCV:从零到一】12:图像金字塔(上采样、降采样)
前言这是我《OpenCV:从零到一》专栏的第十二篇博客,想看跟多请戳这。本文概要上采样(cv::pyrUp) – zoom in 放大降采样 (cv::pyrDown) – zoom out 缩小subtract归一化 normalize案例代码大概内容:上采样、降采样、归一化 。#include <opencv2/opencv.hpp>#include <iostream>#include "math.h"using namespace cv;int原创 2020-06-23 22:02:30 · 191 阅读 · 0 评论 -
【OpenCV:从零到一】11:提取水平线、垂直线(自适应阈值)
前言这是我《OpenCV:从零到一》专栏的第十一篇博客,想看跟多请戳这。本文概要adaptiveThresholdbitwise_not提取步骤输入图像彩色图像 imread转换为灰度图像 – cvtColor转换为二值图像 – adaptiveThreshold定义结构元素开操作 (腐蚀+膨胀)提取 水平与垂直线案例代码大概内容:提取边缘(点)或者水平线 。#include <opencv2/opencv.hpp>#include <iostream>原创 2020-06-23 15:41:54 · 337 阅读 · 2 评论 -
【OpenCV:从零到一】10:形态学操作(开操作、闭操作、形态学梯度、顶帽、黑帽)
前言这是我《OpenCV:从零到一》专栏的第十篇博客,想看跟多请戳这。本文概要开操作- open 先腐蚀后膨胀 可以去掉小的对象,假设对象是前景色,背景是黑色闭操作- close 可以填充小的洞(fill hole),假设对象是前景色,背景是黑色形态学梯度- Morphological Gradient 膨胀减去腐蚀 又称为基本梯度(其它还包括-内部梯度、方向梯度)顶帽 – top hat黑帽 – black hatmorphologyEx案例代码大概内容: 。运行效果:原创 2020-06-23 14:13:06 · 173 阅读 · 0 评论 -
【OpenCV:从零到一】09:腐蚀和膨胀|滑动条
前言这是我《OpenCV:从零到一》专栏的第九篇博客,想看跟多请戳这。本文概要滑动条的设置createTrackbargetStructuringElement腐蚀操作 erode膨胀操作dilate案例代码大概内容: 滑动条控制图片的腐蚀/膨胀程度。#include <opencv2/opencv.hpp> #include <iostream> using namespace cv;void CallBack_Demo(int, void*);Mat原创 2020-06-22 23:29:30 · 267 阅读 · 0 评论 -
【OpenCV:从零到一】08:模糊图像(滤波器)
前言这是我《OpenCV:从零到一》专栏的第八篇博客,想看跟多请戳这。本文概要线性滤波器非线性滤波器案例代码大概内容: 。#include <opencv2/opencv.hpp> #include <iostream> using namespace cv;int main(int argc, char** argv) { Mat src = imread("D:\\86186\\Documents\\opencv\\lena.jpg"); if (原创 2020-06-19 23:37:42 · 204 阅读 · 0 评论 -
【OpenCV:从零到一】07:绘制图像与文字
前言这是我《OpenCV:从零到一》专栏的第七篇博客,想看跟多请戳这。本文概要使用cv::Point与cv::Scalar绘制线、矩形、园、椭圆等基本几何形状画线 cv::line (LINE_4\LINE_8\LINE_AA)画椭圆cv::ellipse画矩形cv::rectangle画圆cv::circle画填充cv::fillPoly随机生成与绘制文本RNG类生成高斯随机数RNG.gaussian (double sigma)生成正态分布随机数RNG.uniform原创 2020-06-19 18:21:38 · 174 阅读 · 0 评论 -
【OpenCV:从零到一】06:调整图像亮度对比度
前言这是我《OpenCV:从零到一》专栏的第六篇博客,想看跟多请戳这。本文概要对比度和亮度的概念Mat new_image = Mat::zeros( image.size(), image.type() );saturate_cast(value)Mat.at(y,x)[index]=value案例代码大概内容:调整图像亮度对比度 。#include <opencv2/opencv.hpp>#include <iostream>#include <op原创 2020-06-19 14:20:27 · 188 阅读 · 0 评论 -
【OpenCV:从零到一】05:图像混合和叠加
前言这是我《OpenCV:从零到一》专栏的第五篇博客,想看跟多请戳这。本文概要案例代码大概内容: 。运行效果:解析及注意事项全注释代码翻译笔记原创 2020-06-19 01:12:36 · 213 阅读 · 0 评论 -
【OpenCV:从零到一】04:图像操作
前言这是我《OpenCV:从零到一》专栏的第四篇博客,想看跟多请戳这。本文概要Sobel算子minMaxLoc函数Mat对象的成员函数 atvec类及其常用的类加强上一篇提到的API的使用案例代码大概内容:sobel边缘检测,阻塞图片的蓝色和绿色通道。#include <opencv2/core/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/opencv.hpp>#inc原创 2020-06-18 21:55:37 · 179 阅读 · 1 评论 -
【OpenCV:从零到一】03:Mat对象的创建与使用
前言这是我《OpenCV:从零到一》专栏的第三篇博客,想看跟多请戳这。本文概要void copyTo(Mat mat) Mat clone()void convertTo(Mat dst, int type)bool empty();uchar* ptr(i=0)create() Scalar();zaros() ones()案例代码大概内容:各种方式创建Mat以及Mat的使用。#include <opencv2/core/core.hpp> #原创 2020-05-28 23:52:05 · 396 阅读 · 0 评论 -
【OpenCV:从零到一】02:矩阵的掩膜操作
前言这是我《OpenCV:从零到一》专栏的第二篇博客,想看跟多请戳这。本文概要获取图像像素指针CV_Assert像素范围处理:saturate_cast()saturate 使饱和,浸透函数调用filter2D功能掩膜(mask也称为kennel),在数字图像处理中对应的就是模板运算,是处理图像常用的运算。说白了就是将某个像素的附近的像素的灰度值进行加权运算得到的值再赋给这个像素。案例代码大概内容:矩阵的掩膜操作。解析及注意事项全注释代码翻译笔记...原创 2020-05-28 18:33:11 · 320 阅读 · 0 评论 -
【OpenCV:从零到一】01:加载、修改、保存图像
前言这是我《OpenCV:从零到一》专栏的第一篇博客,想看跟多请戳这。本文概要本文主要涉及一下几个函数imread、imwrite (imgcodecs)namedWindow、imshow、waitKey(highgui)cvtColor(imgproc)后面括号里的是头文件名(下面是官方文档里的主要模块)不难发现,命名规律:im=imageproc=process这样一来头文件的功能就好理解很多了。事不宜迟赶紧来看代码吧案例代码大概内容:图像的加载、修改、保存。#inclu原创 2020-05-26 22:20:09 · 169 阅读 · 0 评论 -
OpenCV专栏观看须知
对应教程本人愚钝,学习一门新的东西几乎都会先去b站先找一下看看有没有视频教学,b站自然是神通广大什么都有,本教程的案例代码是这个视频一样的,目前来说我认为讲的还行,同时在整理代码的时候我会通过阅读官方英文文档来进一步的强化所学。而数字图像处理主要看上海交大的和天津理工的,其中天津理工的内容结合了很多代码,但是我看不清,只是粗略的看一遍,大概有个整体概念和框架(值得一提的是这个视频后面的案例我觉得很不错)。上海交大的看到比较认真,上海交大的课程除了第一节声音是否难受之外,其他都还行,内容偏理论,我比较喜欢。原创 2020-05-26 22:07:51 · 218 阅读 · 0 评论