OpenCV
OpenCV 知识分享
wohu007
这个作者很懒,什么都没留下…
展开
-
OpenCV 笔记(08)— 二维点、三维点、基于 Mat 的 std::vector 等常用数据结构的定义和输出
1. 定义和输出二维点 Point2f p2(3, 4); cout << "[二维点] is "<< endl << p2 << endl;输出结果:[二维点] is [3, 4]2. 定义和输出三维点 Point3f p3(3, 4, 2); cout << "[三维点] is "<< endl << p3 << endl;输出结果:[三维点] is [3, 4, 2]3. 定原创 2020-10-29 22:43:20 · 979 阅读 · 0 评论 -
OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算
数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值的彩色图像。这些值通常在整数0~255,但也可以使用其他范围,比如在高动态范围成像(high dynamic range imaging,简称HDRI)或热图像领域中的浮点数0~1。图像是以矩阵格式存储的,其中的每个像素都有一个位置,并且可以通过列和行的编号来引用。 OpenCV 用 Mat 类来达到这个目的原创 2020-10-15 22:48:03 · 4574 阅读 · 2 评论 -
OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)
1. 由于宏名称的变更照成的“未声明的标识符”系列问题有时候,遇到此类问题加入一句 #include <cv.h> 便可以让 OpenCV3 或者 OpenCV4 也能认识一些 CV_ 前缀的宏,将问题解决掉,因为有不少 OpenCV1 的宏依然在 OpenCV3 或者 OpenCV4 的 cv.h 头文件中有定义。问题:在 OpenCV3/ OpenCV4 的环境下运行 OpenCV2 中写的程序,报 error C2065: <CV_WINDOW AUT0SIZE,:未声原创 2020-10-11 22:30:25 · 3131 阅读 · 0 评论 -
OpenCV 笔记(09)— 常用的数据结构和函数(Vec、Point、Scalar、Size、Rect、cvtColor)
1. Vec 对象类型Vec 是一个主要用于数值向量的模板类。我们可以定义向量的类型和组件的数量:Vec<double, 19> myVector我们还可以使用任何的预定义类型:typedef Vec<uchar, 2> Vec2b;typedef Vec<uchar, 3> Vec3b;typedef Vec<uchar, 4> Vec4b;typedef Vec<short, 2> Vec2s;typedef Vec<原创 2020-10-31 22:15:49 · 2555 阅读 · 0 评论 -
Ubuntu 彻底卸载 OpenCV
进入安装 OpenCV 的软件包解压安装目录,也就是之前执行 make install 的目录,执行以下命令:sudo make uninstallsudo rm -rf /usr/local/share/opencv*sudo rm -rf /usr/local/include/opencv*sudo rm -rf /usr/local/lib/libopencv_*sudo rm -rf /usr/local/lib/cmake/opencv4/...原创 2020-08-12 23:01:47 · 1915 阅读 · 0 评论 -
OpenCV 笔记(03)— 读取视频、通过摄像头采集视频、采集视频 canny 边缘检测
我们本节学习如何利用 OpenCV 中的 VideoCapture 类,来对视频进行读取显示,以及调用摄像头。VideoCapture 它提供了从摄像机或视频文件捕获视频的 C++ 接口, 作用是从视频文件或从摄像头捕获视频并显示出来。1. 读取并播放视频VideoCapture 读入视频方法有两种:先实例化再初始化:VideoCapture capture;capture.open("demo.mp4");在实例化的同时进行初始化:VideoCapture capture原创 2020-09-26 15:08:29 · 1943 阅读 · 1 评论 -
OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)
首先是下面代码中将要使用的 r 矩阵的定义。需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内。Mat r = Mat(2, 3, CV_8UC3);randu(r, Scalar::all(0), Scalar::all(255));1. OpenCV 默认格式cout << "r [默认风格]is "<< endl << r << endl;输出格式如下:r [默认风格]is原创 2020-10-25 12:39:18 · 728 阅读 · 0 评论 -
Ubuntu 安装 OpenCV4 详细步骤
1. 安装依赖库1.1 必须安装库sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev1.2 可选安装库sudo apt-get install python-dev python-numpy python3-dev python3-numpysudo apt-get ins原创 2020-08-13 23:20:36 · 5085 阅读 · 4 评论 -
OpenCV 笔记(05)— opencv.hpp 头文件作用(是其它所有头文件的全集)
在编辑器中通过点击 #include "opencv2/opencv.hpp" 头文件就可以看到该头文件的定义如下#ifndef OPENCV_ALL_HPP#define OPENCV_ALL_HPP// File that defines what modules where included during the build of OpenCV// These are purely the defines of the correct HAVE_OPENCV_modulename value原创 2020-10-14 22:27:18 · 3356 阅读 · 1 评论 -
OpenCV 笔记(02)— 图像显示、保存、腐蚀、模糊、canny 边缘检测(imread、imshow、namedWindow、imwrite)
OpenCV 提供两种用户界面选项:基于原生用户界面的基本界面,适用于 Mac OS X 的 cocoa 或 carbon,以及适用于 Linux 或 Windows 用户界面的 GTK ,这些界面在编译 OpenCV 时被默认选择。基于 Qt 库的略微更高级的界面,这是跨平台的界面。必须在编译 OpenCV 之前,在 CMake 中手动启用 Qt 选项。1. 图像显示在 OpenCV 中,图像显示过程非常简单,只需用 imread 函数载入到新版本的图像存储数据结构 Mat 类中,然后用原创 2020-09-22 22:29:32 · 775 阅读 · 0 评论 -
Ubuntu VSCode OpenCV 环境配置
settings.json 中添加"code-runner.executorMap": { "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -std=c++11 `pkg-config --libs --static opencv4` `pkg-config --cflags opencv4` && $dir$fileNameWithoutExt" },c_cpp_propertie原创 2020-08-11 22:57:33 · 1369 阅读 · 2 评论 -
OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
1. OpenCV 概念图像处理( Image Processing )是用计算机对图像进行分析, 以达到所需结果的技术, 又称影像处理。图像处理技术一般包括图像压缩, 增强和复原, 匹配、描述和识别 3 个部分。图像处理一般指数字图像处理( Digital Image Processing )。其中, 数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组。该数组的元素称为像素,其值称为灰度值。而数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技原创 2020-09-20 22:01:02 · 2622 阅读 · 0 评论 -
Python+OpenCV 图像处理系列(7)—— 图像色彩空间及转换
1. 色彩空间转换函数cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)第一个参数为加载在内存的读片,第二个参数为转换的类型,其中包括:COLOR_BGR2GRAY = 6 彩色到灰度COLOR_GRAY2BGR = 8 灰度到彩色COLOR_BGR2HSV = 40 BGR到HSVCOLOR_HSV2BGR = 54 HSV到 BGR等等2....原创 2019-06-02 14:26:40 · 1195 阅读 · 0 评论 -
Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值
1. Numpy 相关知识1.1 Ndarray 对象在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作。In [2]: a = np.array([[1, 2], [3,4], [5, 6]])In [3]: aOut[3]: array([[1, 2], [3, 4], [5,...原创 2019-06-04 23:18:55 · 2064 阅读 · 0 评论 -
OpenCV 2 和 CV 3 获取帧率、高、宽参数差异('module' object has no attribute 'cv')
1. cv2import cv2fps = float(vc.get(cv2.cv.CV_CAP_PROP_FPS))max_frame = int(vc.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT))interval1 = int(interval * fps)h = int(vc.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))w...原创 2020-04-18 21:00:36 · 399 阅读 · 0 评论 -
Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值
1. 图像的翻转图像翻转 (Image Flip),图像翻转的本质像素映射,OpenCV 支持三种图像翻转方式:X轴翻转,flipcode = 0Y轴翻转, flipcode = 1XY轴翻转, flipcode = -1cv2.flip(src, flipcode) 携带两个参数,第一个是图像在内存中的映射,第二个是翻转码。import cv2import numpy as ...原创 2019-06-18 22:01:34 · 1214 阅读 · 1 评论 -
Python+OpenCV 图像处理系列(4)—— 图像像素的读写、算术运算、逻辑运算及像素的统计
图像的基础操作1. 获取并修改像素值可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R 的值。import cv2img = cv2.imread("113_2018-11-28_16-30-49.jpg", cv2.IMREAD_COLOR)print "img is {}".format(img)px = img[100, 100]print...原创 2019-01-17 22:50:14 · 1924 阅读 · 0 评论 -
Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形
OpenCV 中的绘图函数使用 OpenCV 绘制不同几何图形,其中包括的函数有cv2.line()cv2.circle()cv2.rectangle()cv2.ellipse()cv2.putText()以上函数均需要接受以下参数:img:图片的路径;color:形状的颜色。以 RGB 为例,需要传入一个元组,例如:(255,0,0)代表蓝色。对于灰度图只需要传入灰度值;...原创 2019-01-16 23:21:54 · 5514 阅读 · 5 评论 -
Python+OpenCV 图像处理系列(5)—— 图像 ROI 操作及通道的拆分合并
图像的算术运算1. 图像的加法可以使用函数 cv2.add() 将两幅图像进行加法运算,当然也可以直接使用 numpy,res=img1+img。两幅图像的大小,类型必须一致,或者第二个图像可以使一个简单的标量值。注意:OpenCV 中的加法与 Numpy 的加法是有所不同的。OpenCV 的加法是一种饱和操作,而 Numpy 的加法是一种模操作。import cv2import num...原创 2019-01-26 23:21:51 · 1598 阅读 · 0 评论 -
OpenCV 图像处理系列(6)—— 图像的几何变化
图像的几何变换OpenCV 提供了两个变换函数,cv2.warpAffine 和 cv2.warpPerspective,使用这两个函数你可以实现所有类型的变换。cv2.warpAffine 接收的参数是 2 x 3 的变换矩阵,而 cv2.warpPerspective 接收的参数是 3 x 3 的变换矩阵。1. 扩展缩放扩展缩放只是改变图像的尺寸大小。OpenCV 提供的函数 cv2.r...原创 2019-01-27 22:29:34 · 293 阅读 · 0 评论 -
Python+OpenCV 图像处理系列(2)—— 视频捕获、播放和保存
1.视频捕获为了获取视频,首先需要创建一个 VideoCapture 类对象。它的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。import cv2cap = cv2.VideoCapture()flag = cap.isOpened()if flag:...原创 2019-01-15 22:09:33 · 906 阅读 · 0 评论 -
Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存
Ubuntu 16.04 下安装 Opencv# sudo apt-get install libopencv-dev# sudo apt-get install python-opencv概述生活中图像都是由 RGB 三原色构成的,R 表示红色(Red),G 表示绿色 (Green), B 表示蓝色(Blue)。计算机中 RGB 这三个颜色的取值通常是在 0-255 之间。彩色图片有...原创 2019-01-14 22:56:50 · 1414 阅读 · 1 评论