OpenCV学习历程
文章平均质量分 95
落寞的雪
愿你在被打击时 记起你的珍贵 抵抗恶意
愿你在迷茫时 坚信你的珍贵
爱你所爱 行你所行 听从你心 无问西东
展开
-
OpenCV3.1安装包下载
下载此包后解压复制到C盘或其它盘符目录下 建议C盘不容易被勿删掉https://download.csdn.net/download/weixin_41424481/11380723原创 2019-07-18 11:11:42 · 1660 阅读 · 0 评论 -
OpenCV傅立葉轉換(Fourier Transform)
傅立葉轉換(Fourier Transform)傅立葉轉換是一對一函數,可以是連續函數或者離散數列,正向傅立葉轉換,是把一個複雜的波,拆解成N個sin和cos組成的波,頻率從0倍到N-1倍,逆向傅立葉轉換,是把N個sin和cos組成的波,頻率從0倍到N-1倍,分別乘上強度、加上相位,再疊加成一個複雜的波。基本上任何的函式可以被無窮的sin和cos函式的加權和來表示,在影像處理上,經由傅立葉轉換...翻译 2019-07-19 18:46:31 · 496 阅读 · 0 评论 -
OpenCV中文手册,非常实用,物有所值
https://download.csdn.net/download/weixin_41424481/11421850原创 2019-07-24 15:48:17 · 5657 阅读 · 0 评论 -
OpenCV 绘图画(圆、长方形、椭圆、多边形、加字符等)
废话不多说,先上代码: 环境 : Qt5.9.1+ Msv2015DrawImage.h#ifndef DRAWIMAGE_H#define DRAWIMAGE_H#include "opencv2/opencv.hpp"#include "opencv2/calib3d/calib3d.hpp"using namespace cv;class DrawImage{pu...原创 2019-07-20 08:47:25 · 2229 阅读 · 0 评论 -
OpenCV的色彩空间转换
色彩空间转换函数cvtColor();函数可以让不同色彩空间的图片进行相互转换,由于OpenCV从外界读图时,比如imread()读取JPEG档时Mat内存为BGR 而不是RGB,所以输入参数通常使用CV_BGR2XXX、CV_XXX2BGR,代表从BGR色彩空间转到其他色彩空间,或者从其它色彩空间转到BGR色彩空间,依次类推,CV_RGB2XXX代表从RGB色彩空间转到其他色彩空间,通常较少使...原创 2019-07-20 13:36:12 · 796 阅读 · 0 评论 -
OpenCV中傅立叶变换官网详解(简单易懂)
先做详细笔记 官网范例:#include "opencv2/core/core.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui/highgui.hpp"#include <iostream>using names...原创 2019-07-20 16:41:54 · 1982 阅读 · 0 评论 -
OpenCV中的滤波操作(高斯滤波、双边滤波、均值滤波、中值滤波)
为了方便自己查看,重新包了一层,代码和注释保留在了一起AllBlur.h#ifndef ALLBLUR_H#define ALLBLUR_H#include "opencv2/opencv.hpp"#include "opencv2/calib3d.hpp"using namespace cv;class AllBlur{public: AllBlur(); ...原创 2019-07-21 17:22:07 · 758 阅读 · 0 评论 -
開運算、閉運算(morphologyEx、MORPH_OPEN、MORPH_CLOSE)
這邊介紹開運算和閉運算,這兩種都是侵蝕和膨脹複合而成,開運算是先侵蝕後膨脹,閉運算是先膨脹後侵蝕。對於集合I和H,假設使用H對I進行開運算,代表H對I進行侵蝕後膨脹,記作:開運算可以使物體輪廓變得光滑,還能使狹窄的連結斷開,以及消除外觀上的毛刺,但在物體大於結構元素的情況下,開運算與侵蝕並不相同,圖像的輪廓並沒有產生整體的收縮,物體位置也沒有發生任何變化,假如我們對一幅影像重複...转载 2019-07-26 16:27:45 · 1354 阅读 · 0 评论 -
OpenCV中的resize()函数
void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR)。src 输入图。dst 输出图,形态和输入图相同,当dsize不等于0,输出图尺寸会和dsize相同,当dsize等于0,输出图尺寸会由输入图尺寸、fx...原创 2019-07-23 11:05:46 · 37297 阅读 · 0 评论 -
OpenCV图像金字塔(pryUp()、pryDown())
我们这边介绍图片金字塔,在OpenCV里是可以用pryUp()和pryDown()分别对图片进行放大或缩小,图片金字塔通常在图片辨识上,将同一图片多次向下取样,籍以产生不同尺度下的多组图片,籍由比对这些图片,让即使遇到不同大小的内容也有好的搜索结果。或是当物体检测时,为了更快的处理速度,首先在顶层的小尺寸进行检索,定位感兴趣的物体,接着在高分辨的低层金字塔进行精确的搜索。OpenCV有另一个...原创 2019-07-23 14:08:14 · 1536 阅读 · 1 评论 -
OpenCV 影像卷積(Convolution)
影像卷積(Convolution)濾波(filtering)是影像處理的一個基本操作,目的在選擇性的提取重要訊息,用在影像銳化、去除雜訊或提取感興趣的視覺特徵,這類處理需尋訪影像每個像素,從此像素和相鄰像素得到新的像素值。核心(kernel):基本上核心是一個固定大小,其中心為錨點(anchor point)的二維矩陣,以下為一高斯濾波的核心,大小和矩陣數值依需求而變。卷積(con...转载 2019-07-19 15:15:35 · 150 阅读 · 0 评论 -
OpemCV 图片读取、显示、存储(imread、imshow、imwrite)
读取文档等之前注意加入OpenCV的头文件以及预先配置好的环境,前面章节有讲到与Qt的环境配置 图片读取 Mat imread(const string& filename, int flags=1) filename:读取文件路径和名称。 flags:图片标志,flag分成三種模式,分別為彩色、灰階、原影像格式。 ...原创 2019-07-19 15:04:12 · 695 阅读 · 0 评论 -
OpenCV与Qt的环境配置(Qt5.9.1+Msv2015编译器)
學習OpenCV的第一件事,就是上網下載OpenCV,再進行簡單的程式運行,为了确保配置和本文一样建议到此链接下载https://download.csdn.net/download/weixin_41424481/11380723也可以以到官网下载https://opencv.org/OpenCV下載與設定1、進入OpenCV官網,選擇下載檔案。笔者下载的是OpenCV3.1...原创 2019-07-18 13:58:33 · 832 阅读 · 4 评论 -
OpenCV的影像格式(Mat)
Mat是OpenCV指定的资料形态,代表的是矩阵(Martrix)前三个字母,影像其实也可以 看成某个二维阵列,所以在OpenCV2.0里不论矩阵计算或是影像处理的格式,都是以mat类别进行处理,并有想断的成员变数和函数方便使用,使用时不用考虑内存管理,这也是OpenCV 1.0和2.0不同之处,这边介绍常用的Mat类别成员和成员函数,包括如何得到影像资讯、创建影像、复制影像、改变位元深度和操作像...原创 2019-07-18 14:37:37 · 898 阅读 · 0 评论 -
OpenCV 创建图像(影像的创建)
OpenCV Mat的构造函数 : Mat(int rows, int colos, int type, const cv::Scalar& s);*rows: 图片的高度*colos: 图片的宽度* type: 图片的形态*S : 像素值,我们可以在一开始构造的时候就指定图片的像素值,像灰阶图的强度,或是BGR分别的像素强度示例:...原创 2019-07-18 14:44:26 · 3491 阅读 · 0 评论 -
OpenCV 图片分配空间
我们可以对空的或者已有的资料的Mat,重新分配空间大小,也就是改变影像的长、宽或像素形态函数: void Mat::create(int rows, int cols, int type); rows: 高cols : 宽type : 形态参数是先输入高度再输入宽度,且因为效率的考量,假设输入的尺寸、形态和呼叫影像相同,函数直接返回,不会重新分配空间...原创 2019-07-18 15:14:03 · 383 阅读 · 0 评论 -
OpenCV 图片复制 copyTo()和clone()
這邊介紹三種複製影像的方式,第一種為多載等號運算子,第二、三種分別為Mat的成員函式。OpenCV等號多載Mat& Mat::operator=(const Mat& m)m:輸入圖,左邊影像和右邊影像相同,不會另外複製一份資料。OpenCV影像複製:Mat::copyTo(OutputArray& m) constm:輸出圖,輸出圖會變成和呼叫影像一樣的長、...原创 2019-07-18 15:18:16 · 1744 阅读 · 0 评论 -
OpenCV缩放并改变图片数据类型(此函数可以改变图片整体对比度)
void Mat::convertTo(OutputArray m, int rtype, double alpha=1, double beta=0)m:輸出圖,如果尺寸或型態和呼叫影像不同,會重新分配空間。 rtype:輸出圖的型態,呼叫影像和輸出圖的通道數會相同。 alpha:輸出圖放大倍率,預設為1。 beta :輸出圖增加量,預設為0。示例: Mat img("d:...原创 2019-07-18 16:20:21 · 820 阅读 · 0 评论 -
OpenCV操作像素的几种方法(单个像素|操作多像素|遍历像素)
操作单个像素:at()用來訪問像素,可返回左值或右值,所以我們可用at()得到或改變某個像素值,這函式使用模板,所以使用時除了輸入位置,還必須需入影像的像素型態,使用at()函式時,輸入參數順序同樣為先高再寬。。OpenCV改變像素:template T& Mat::at(int i, int j) OpenCV讀取像素:template const T& Mat::at...原创 2019-07-18 16:56:31 · 1175 阅读 · 0 评论 -
OpenCV 图片叠加(add、addWeighted)
图片可以用不同方式组合,就像矩阵运算,各个相对像素做加减乘除.这边介绍如何使用addweight()和add()函数将输入影像就行混合,addweighted()和add()只能处理相同大小的图片。void add(InputArray src1, InputArray src2, OutputArray dst, InputArray mask= niArray(), int dtype...原创 2019-07-19 09:35:16 · 3352 阅读 · 0 评论 -
OpenCV如何叠加大小不同的图片
有时候我们想叠加不同大小的图片,类似于把一个小Logo加到原本图片上去,且能指定Logo的位置,由于add()函数要求输入的图片格式、尺寸相同,所以不能直接使用add()函数,因此再使用之前要先定义感兴趣区域(ROI),ROI大小和Logo图相同,ROI位置决定Logo图插入位置。我们使用addWeighted()调整背景和logo图的强度比例,以下的imageROI和logo这两个Mat,需...原创 2019-07-19 10:13:03 · 4601 阅读 · 1 评论 -
OpenCV环境变量配置Qt5.9.1+MSV2015+OpeenCV3.1
安装好后编译报这个错误,表示缺少动态库,需要增加环境变量打开我的电脑->属性->高级系统设置->->打开环境变量设置窗口双击红色Path这一栏打开将OpenCV安装路径下的几个路径拷贝到红色框框内即可...原创 2019-08-28 21:33:20 · 229 阅读 · 0 评论