OpenCV
文章平均质量分 90
OpenCV数字图像处理开源库学习、开源计算机视觉库学习
Techblog of HaoWANG
来源于生活,低于生活。
NDVC Lab——Nonlinear Dynamics and Vibration Control Laboratory, Hong Kong,China;
JH Lab ---- 季华实验室(广东省先进制造科学与技术实验室);
Major In Robotics: Modelling、Control Technology and Vision.
展开
-
OpenCV编程实践小结
1. 图像数据文件读取合法性检查 当我们使用opencv读取图片或者使用Deep learning读取数据集时,如果图片有问题则会造成错误!如何检测一个文件夹内所有图片是否都没有错误呢?这里总结以下代码。1.使用os模块 判断文件夹是否存在 importosos.path.exists(test_dir)#Trueos.path.exists(no_exist_dir)#False可以看出用os.path.exists()方法,判断文件和文件夹是一...原创 2020-12-29 09:26:53 · 719 阅读 · 0 评论 -
OpenCV体系框架总结
目录:Introduction to OpenCVLearn how to setup OpenCV-Python on your computer!Gui Features in OpenCVHere you will learn how to display and save images and videos, control mouse events and create tr...原创 2019-10-05 17:01:48 · 503 阅读 · 0 评论 -
OpenCV教程(29)-- 图像特征提取与匹配
有时候,图像的像素大小对角点存在一定的影响。比如图像越小,角点看上去趋向近似一条直线,这样很容易造成角点的丢失。如果按照上述的检测方法,会造成角点检测结果不相符,因此引入DoG和SIFT算法进行检测。Opencv的SIFT类是DoG和SIFT算法组合。DoG是对同一图像使用不同高斯滤波器所得的结果。SIFT是通过一个特征向量来描述关键点周围区域的情况。对比SURF和SIFT算法,ORB算法更处于起步阶段,在2011年才首次发布。但比前两者的速度更快。ORB基于FAST关键点检测和BRIEF...原创 2021-01-28 16:49:28 · 2387 阅读 · 0 评论 -
OpenCV教程 (28)-- 直方图均衡化、直方图对比
1. 直方图均衡化2. 直方图比较原创 2021-01-08 11:05:37 · 1289 阅读 · 0 评论 -
OpenCV教程 (27)-- 直方图操作
目录1. 目标2. 理论3.查找直方图3.1. OpenCV 中的直方图计算2. Numpy 的直方图计算4. 绘制直方图4.1. 使用 Matplotlib5. 代码5.1 BGR三通道灰度直方图5.2 灰度通道直方图5.3 mask操作国际惯例: Histograms - 1 : Find, Plot, Analyze !!! Learn the basics of histograms Histograms - 2: Hist..原创 2021-01-07 16:20:04 · 389 阅读 · 0 评论 -
OpenCV教程(27)-- 轮廓特征
目录Goal1. Moments2. Contour Area 轮廓面积3. Contour Perimeter 轮廓周长4. Contour Approximation 轮廓近似5. Convex Hull 凸包6. Checking Convexity 凸性检验7. Bounding Rectangle 边界矩形7.a. Straight Bounding ...原创 2019-10-30 19:16:15 · 812 阅读 · 0 评论 -
OpenCV教程 (26)-- OpenCV中的轮廓
GoalUnderstand what contours are. Learn to find contours, draw contours etc You will see these functions :cv2.findContours(),cv2.drawContours()What are contours?Contours can be explained simp...原创 2019-10-30 17:40:43 · 803 阅读 · 0 评论 -
OpenCV 源码编译 Linux C++ & Clion
写在前面:1. Linux 源码编译OpenCV之前请卸载Anaconda3及其组件。卸载方法参考https://blog.csdn.net/qq_22474567/article/details/549842572. 如果当中安装的一些库不明白是干嘛的,请参考博客https://blog.csdn.net/hjxu2016/article/details/82390434...原创 2019-10-19 11:37:24 · 2332 阅读 · 2 评论 -
OpenCV教程(25) -- 图像金字塔Image Pyramids
目录GoalTheoryGoalIn this chapter,We will learn about Image Pyramids We will use Image pyramids to create a new fruit, "Orapple" We will see these functions:cv2.pyrUp(),cv2.pyrDown()Theor...原创 2019-10-13 15:41:01 · 793 阅读 · 0 评论 -
Opencv教程(24)Canny边缘检测
GoalIn this chapter, we will learn aboutConcept of Canny edge detection OpenCV functions for that :cv.Canny()TheoryCanny Edge Detection is a popular edge detection algorithm. It was develo...原创 2019-10-10 15:14:11 · 494 阅读 · 0 评论 -
Opencv教程(23)图像梯度
目录GoalTheory1. Sobel and Scharr Derivatives2. Laplacian DerivativesCode一个重要的事!GoalIn this chapter, we will learn to:Find Image gradients, edges etc We will see following functions :...原创 2019-10-10 14:36:17 · 284 阅读 · 0 评论 -
OpenCV编译错误---- 对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
在ubuntu下安装opencv和PCL时,遇到如下错误//usr/lib/libvtkIO.so.5.10:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用//usr/lib/libvtkIO.so.5.10:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用//usr/lib/libvtkIO.so.5.10:对‘TIFFScanlineSi...原创 2019-10-09 15:26:59 · 1734 阅读 · 0 评论 -
OpenCV Clion编译器与环境配置- 详细(windows)
1. 前言鉴于VS本身体积的庞大和项目依赖管理方式的不便,所以本文采用Clion通过CMake进行项目结构管理,系统环境选择配置较为复杂的windows10 Pro,Linux同理。ubuntu 编译opencv3.4.7参考https://blog.csdn.net/u013066730/article/details/794117672. 准备工作Windows (本文...原创 2019-10-08 17:03:06 · 3027 阅读 · 0 评论 -
OpenCV教程(23)形态学操作morphologyEx()
目录目标原理腐蚀膨胀开运算闭运算形态学梯度礼帽黑帽小结:形态学操作之间的关系目标• 学习不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等• 我们要学习的函数有:cv2.erode(),cv2.dilate(),cv2.morphologyEx()等原理形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。需要输入两...原创 2019-10-07 11:47:23 · 4272 阅读 · 0 评论 -
OpenCV教程(22)-- 图像平滑 Image Smoothing
Table of ContentsGoals2D Convolution ( Image Filtering )Image Blurring (Image Smoothing)1. Averaging2. Gaussian Blurring3. Median Blurring4. Bilateral FilteringAdditional Resources...原创 2019-10-06 20:37:19 · 606 阅读 · 6 评论 -
OpenCV教程(21)-- 图像阈值(Image Thresholding)
GoalIn this tutorial, you will learn Simple thresholding, Adaptive thresholding, Otsu's thresholding etc. You will learn these functions : cv2.threshold, cv2.adaptiveThresholdetc.Simple Thresh...原创 2019-10-06 17:01:04 · 1391 阅读 · 0 评论 -
OpenCV教程(20)图像变换(平移、旋转、仿射变换)
GoalsLearn to apply different geometric transformation to images like translation, rotation, affine transformation etc. You will see these functions: cv.getPerspectiveTransformTransformationsO...原创 2019-10-05 16:21:27 · 871 阅读 · 0 评论 -
OpenCV Error 集锦
1.问题cv2.resize()报错cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'原因及解决方案请一定好好...原创 2019-10-05 15:17:25 · 428 阅读 · 0 评论 -
OpenCV教程(19)--性能衡量指标
GoalIn image processing, since you are dealing with large number of operations per second, it is mandatory that your code is not only providing the correct solution, but also in the fastest manner...原创 2019-10-04 17:15:36 · 409 阅读 · 0 评论 -
OpenCV教程(18)-- 滑动条TrackBar
目录GoalCode DemoGoalLearn to bind trackbar to OpenCV windows You will learn these functions : cv.getTrackbarPos(), cv.createTrackbar()etc.Code DemoHere we will create a simple applicat...原创 2019-10-04 16:59:37 · 356 阅读 · 0 评论 -
OpenCV教程(17) -- 用鼠标做画笔
目录GoalSimple DemoMore Advanced DemoAdditional ResourcesExercisesGoalLearn to handle mouse events in OpenCV You will learn these functions : cv.setMouseCallback()Simple DemoHere,...原创 2019-10-04 16:53:16 · 353 阅读 · 0 评论 -
OpenCV教程(16)-- OpenCV绘图(Python)
GoalLearn to draw different geometric shapes with OpenCV You will learn these functions : cv.line() cv.circle(), cv.rectangle(), cv.ellipse(), cv.putText()etc.CodeIn all the above...原创 2019-10-04 16:35:08 · 453 阅读 · 0 评论 -
图像处理与计算机视觉常用开源代码库
索引:图像分割 特征提取 目标检测 图像分类、聚类 目标跟踪 3D视觉与地图重建 目标、行为检测 光流与运动检测 机器学习算法等。原文链接:https://blog.csdn.net/carson2005/article/details/54620112VLFeat.org 网站:http://www.vlfeat.org/...原创 2019-03-13 10:55:04 · 466 阅读 · 0 评论 -
OpenCV教程(15)---- Python+OpenCV 视频录制
导读:在视频文件处理的过程中,需要使用OpenCV以及其他开源包中的工具,在GitHub上有很多优秀的项目以及开源的代码,学习他们的解决问题的思路以及源代码,对coding能力有很大帮助。因此,本文记录并总结了前辈的优秀成果,以供学习参考。实例:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2019/3/7 11...原创 2019-03-06 15:11:32 · 5120 阅读 · 0 评论 -
OpenCV教程(14)问题思考---- 深度学习中为什么普遍使用BGR而不用RGB?
Table of Contents1. 发现问题现象:2. 提出问题问题:为什么使用BRG描述图像,而非RGB通道?3. 合理假设4. 求解stackoverflow解答1. 发现问题计算机视觉中普遍用BRG描述图像,而非RGB通道?现象:查看OpenCV ImageProcessing 模块内对色彩空间的定义和使用,官方文档对imgproc的描述如下:...原创 2019-03-05 23:18:13 · 5254 阅读 · 0 评论 -
OpenCV教程(13)-- 图像处理 常用滤波器及使用方法
Table of Contents1.常用滤波器列表:bilateralFilter()双边滤波器blur()平滑滤波器boxFilter()box平滑滤波器filter2D()图像卷积操作GaussianBlur()高斯滤波-平滑medainBlur()中值滤波-去噪/平滑Laplican()拉普拉斯(二阶)微分算子Sobel()计算一阶、二阶、高阶微分算子...原创 2019-03-05 18:19:13 · 1771 阅读 · 0 评论 -
(7)图像增强之空间域滤波-- Part2. 算法篇(英文)
Table of ContentsGoals2D Convolution ( Image Filtering )Image Blurring (Image Smoothing)1. Averaging2. Gaussian Blurring3. Median Blurring4. Bilateral FilteringAdditional Resources...原创 2019-02-27 18:54:33 · 989 阅读 · 0 评论 -
LearnOpenCV 项目博客总结
LearnopencvLearn OpenCV : C++ and Python Examples. You can find the details at LearnOpenCV.comList of Blog PostsBlog Post Gender & Age Classification using OpenCV Deep Learning ( C++/...原创 2019-02-27 13:51:10 · 1161 阅读 · 0 评论 -
fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h
错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?错误分析: 此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"stdafx.h"。 (因为工程中的每个cpp文件属性默认都是使用预编译...原创 2019-02-22 15:39:00 · 608 阅读 · 0 评论 -
OpenCV教程(12) -- 图像尺度调整resize()
OpenCV中提供了图像尺寸调整的函数resize(),函数介绍如下:void resize(InputArray src,OutputArray dst,Size dsize,Double fx=0,Double fy=0,int interpolation=INTER_LINEAR)第一个参数:InputArray src输入图像第二个参数:Outpu...原创 2019-02-15 13:02:19 · 2052 阅读 · 0 评论 -
OpenCV教程(11)-- 图像压缩操作
前言图片压缩应用很广泛,如生成缩略图等。前期我在进行图片处理的过程中碰到了一个问题,就是如何将图片压缩到指定尺寸,此处尺寸指的是生成图片文件的大小。我使用 opencv 进行图片处理,于是想着直接使用 opencv 进行图片压缩处理, opencv 本身包含了压缩到指定像素大小的方法,奈何寻找了很多方法均不能压缩到指定文件尺寸,于是自己在思考后写出了此方法。本文使用python语言。一...原创 2019-02-15 12:49:49 · 8800 阅读 · 3 评论 -
OpenCV教程(11)-锐化滤波器
图像滤波器Mask operations on matricesMask operations on matrices are quite simple. The idea is that we recalculate each pixels value in an image according to a mask matrix (also known as kernel). This ...原创 2019-01-23 17:13:16 · 618 阅读 · 0 评论 -
OpenCV教程(10)图像基本操作与内存管理
输入与输出从文件加载图像:Mat img = imread(filename);如果您读取jpg文件,默认情况下会创建一个3通道图像。如果您需要灰度图像,请使用:Mat img = imread(filename,IMREAD_GRAYSCALE);注意文件格式由其内容(前几个字节)决定。要将图像保存到文件: imwrite(filename,img);注...原创 2019-01-22 14:12:38 · 429 阅读 · 0 评论 -
OpenCV教程(9)图像容器Mat
Mat结构的使用自2001年以来,OpenCV的函数库一直都是基于C的接口构建的,因此在最初的几个版本中,一般使用名为IplImage的C语言结构体在内存中存储图像,时至今日,这仍然出现在旧版教材或嵌入式代码中。C++的出现,带来了类的概念,这使得我们有了另外一个选择,自动内存管理(一定程度上),在对于广大的图像处理领域的开发人员来说,的确是一件可喜可贺的事情。同样的,OpenCV2/3引...原创 2019-01-20 15:59:35 · 417 阅读 · 0 评论 -
OpenCV教程(8)图像变换
void OnMirror() { // TODO: Add your command handler code here IplImage* img = cvCreateImage(cvGetSize(GetDocument()->Image), IPL_DEPTH_32F, 0); // my code start here IplImage* image1 = 0; ...原创 2019-01-20 15:31:17 · 261 阅读 · 0 评论 -
OpenCV教程(7)CvImage的定义与常见问题
CvImage中的陷阱和BUG 目录 1 CvImage类的定义 2 关于引用计数 3 CvImage中的引用计数机制 4 CvImage(IplImage* img)陷阱 5 attach问题 6 重载操作符“=”时的内存泄漏 7 小节 CvImage类的定义class CV_EXPORTS CvImage...原创 2019-01-20 15:28:51 · 3239 阅读 · 0 评论 -
OpenCV教程(6)Mat类函数
基于OpenCV的数字图像处理技术大大提升了视觉开发的效率,在各种处理技术的实现上,诸如:图像增强、图像分割、图像编码与压缩等,都要使用到C++语言中的Mat类及其类函数,本文就OpenCV中Mat类中的常用类函数进行了总结,便于日后学习与运用。CvImage::CvImagebool CvImage::CvImage();bool CvImage::CvImage(CvSize si...原创 2019-01-20 14:38:53 · 1219 阅读 · 0 评论 -
OpenCV教程(5)函数整理
本文就Python版OpenCV模块内全部函数进行抽调和汇总,便于深度理解OpenCV实现数字图像处理技术的原理。Python:import cv2 as cv在Mac终端上,输入以下指令导入OpenCV模块,并显示模块下的所有函数:import cv2 as cv#take in a moduledir(cv)内置函数dir()用于找出模块定义的名称。它返回一个排序的字...原创 2019-01-18 21:27:37 · 4257 阅读 · 3 评论 -
OpenCV教程(4)读取视频文件和运动物体检测
第一部分:C++与OpenCV第二部分:Python3与OpenCVC++实现:/************************************************** * 背景建模,运动物体检测 * **************************************************/ /********************...原创 2019-01-15 16:55:33 · 2895 阅读 · 0 评论 -
OpenCV教程(3)基本图像读入与显示
OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。1. OpenCV与数字图像在使用OpenCV做视觉或数字图像预处理时,需要读入相机采集来的图像或视频信息。图像数据的获取主要有以下几个步骤:光学相机(CCD/CMOS)采集图像信号; 图像采集卡将连续的图像信号转换成计算机能够识别和处理的数字信号,...原创 2018-11-07 16:55:44 · 1937 阅读 · 0 评论