![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
文章平均质量分 65
比卡丘不皮
一个热爱学习与热爱分享的有志青年
展开
-
opencv 霍夫直线检测
熟悉的opencv 又回到我的博客了,接下来带大家最简单的方式来理解对应原理,然后是如何处理的。 霍夫(Hough)变换是一个非常重要的检查间断点边形状的方法 ,它通过将图像坐标空间变换到参数空间,来实现直线和曲线的拟合。...原创 2021-07-28 14:09:28 · 839 阅读 · 0 评论 -
opencv Canny算子计算
话不多说先上结果图吧:理论部分:第一部分高斯模糊: 一般情况下,使用高斯平滑滤波器卷积降噪,已显示了下一个size = 5 的高斯内核示例: 第二部计算梯度方向:Canny API函数:这里要注意点:上代码:// opencv0020.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#includ...原创 2020-05-28 16:19:41 · 280 阅读 · 0 评论 -
opencv 之Laplance算子
今天利用Laplance算子对皮卡丘处理的图片让我们先了解下 对应理论知识点吧:上此我们使用Sobel算子只求一阶导,求最大值来处理数据,这里求二阶导,取0值。这就是简单的理论部分。代码部分:// opencv0019.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <opencv2/opencv.hpp>using namespace..原创 2020-05-28 14:20:35 · 168 阅读 · 0 评论 -
opencv Sobel算子提取图形中的轮廓
话不多说先上结果图:上代码:// opencv0018.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(){ Mat src, dst; src = imread("D:/images/pkq.jpg"); //加载图像原创 2020-05-27 15:26:06 · 790 阅读 · 0 评论 -
opencv 利用鼠标滑动画出多彩的形状
今天没有继续学习新知识点,画出了一个随鼠标画出的图形,知识点全都是之前学的,话不多说,先上图:代码部分:// opencvMouse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;#define WINDOW_NAME "【窗口程序】"..原创 2020-05-22 14:06:22 · 261 阅读 · 0 评论 -
opencv边缘处理
卷积边界问题: 图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理。处理边缘 在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之后再去掉这些边缘。openCV中默认的处理方法是: BORDER_DEFAULT,此外常用的还有如下几种:- BORDER_C...原创 2020-05-21 15:14:40 · 257 阅读 · 0 评论 -
opencv自定义滤波器(filter2D函数的使用)
自定义线性滤波卷积概念卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)卷积如何工作 把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达如下:代码部分:// opencv0016.cpp : 定义控制台应用程序的入口点。//#include "stdafx...原创 2020-05-21 13:55:52 · 2158 阅读 · 0 评论 -
opencv 阈值操作(传说中图像分割的尺子)
阈值: 最简单的分割方法 应用示例:分离对应于我们想要分析的对象的图像的区域。该分离基于对象像素和背景像素之间的强度变化。 为了区分我们感兴趣的像素(其最终将被拒绝),我们对每个像素强度值相对于阈值进行比较(根据要解决的问题确定)。 一旦我们正确分离了重要的像素,我们可以用一个确定的值来设置它们来识别它们(即我们可以为它们分配值(黑色),(白色)或适合您需要的任何值)。如下图的分割:阈值类型: 左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值...原创 2020-05-21 11:23:43 · 923 阅读 · 0 评论 -
opencv图像的扩大与缩小(金字塔原理)
这部分知识还是很简单的,对图片的扩大与缩小,我们先看原理图吧:代码部分:// opencv0014.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ Mat src, dst; s...原创 2020-05-20 16:45:38 · 351 阅读 · 0 评论 -
opencv 提取水平与垂直线条
话不多说,先看结果:我们可以看到,最总是提取出; 水平的线条。上代码吧:// opencv0013.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ Mat src, dst; src = imread("D:/im原创 2020-05-20 15:14:13 · 428 阅读 · 0 评论 -
opencv 形态转化(会了这个,不用怕了)
今天记录的是形态转换的几个,开盘,闭幕,形态梯度,顶帽,黑帽。让我们先了解他们的概念:上代码:// opencv0012.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <opencv2/opencv.hpp>#include <math.h>using namespace std;using ...原创 2020-05-20 12:52:03 · 179 阅读 · 0 评论 -
opencv 膨胀与腐蚀(原来学了之后会膨胀)
形态学操作(morphology operators)-膨胀图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学 形态学有四个基本操作:腐蚀、膨胀、开、闭 膨胀与腐蚀是图像处理中最常用的形态学操作手段形态学操作-膨胀 跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状。形态学操作-腐蚀 腐蚀跟膨胀操作的过程...原创 2020-05-19 16:30:34 · 914 阅读 · 2 评论 -
opencv模糊图像2(平滑处理,线性滤波)
中值滤镜medianBlur(Mat src, Mat dest, ksize)src:源图像 DST:目标图像,必须是相同的类型的src ksize:内核的大小(只有一个,因为我们使用一个方形窗口)。必须奇数双边过滤器:bilateralFilter(src, dst, 15, 100, 5);src:源图像 dst:目标图像 d:每个像素邻域的直径。 :颜色空间中的标准偏差。σcolor :坐标空间中的标准偏差(以像素为单位)原理介绍:中值滤波统计..原创 2020-05-19 10:47:05 · 164 阅读 · 0 评论 -
opencv模糊图像(平滑处理,线性滤波)
模糊原理Smooth/Blur 是图像处理中最简单和常用的操作之一使用该操作的原因之一就为了给图像预处理时候减低噪声使用Smooth/Blur操作其背后是数学的卷积计算: 又是数学公式? 所以呀,不会数学知识,学起来是很麻烦的,不明白请自己查下什么是卷积公式,有助于更好的去了解图像处理部分的,这里就不展看讲解了。通常这些卷积算子计算都是线性操作,所以又叫线性滤波举个例子这个是均值滤波今天我们这里学习两个滤波:归一化框过滤器(均值滤波)高...原创 2020-05-19 10:02:46 · 644 阅读 · 0 评论 -
OpenCV 第8课随机画图与OpenCV文本
例子很简单呐就是让它画很多图,分配不同的颜色,下面我们来看看吧;例子比较简单,这里只是简单记录一下,话不多说,上例子吧:// opencv00008.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;static const char WINTIT原创 2020-05-18 16:12:43 · 252 阅读 · 0 评论 -
opencv第7课 最简单的绘图
像往常一样,先上结果图吧,本例子是opencv中文网上的一个例子,这里只是记录下:结果图:这里主要学习了几个简单的画图的笔记,还有些参数的学习。话不多说上代码:// opencv00007.cpp : 定义控制台应用程序的入口点。//#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/core/core.hpp> //#include <opencv2原创 2020-05-18 14:41:58 · 164 阅读 · 0 评论 -
opencv 第六课 图像的亮度与对比度
本章讲述了图像的亮度与对比度的使用先看处理的结果吧:原始图片:增加亮度:话不多说,先说下简单的写法,这个写法会有点问题,你能感觉到了吗:// opencv000006.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/imgproc.hpp>using name.原创 2020-05-14 17:47:32 · 231 阅读 · 0 评论 -
opencv第5课图像的合并
今天我们来记录下opencv的图像的混合效果,也是更加理解图片如何处理的。目录图片资源准备:图片混合的原理:代码部分:结果图:图片资源准备:首先我们先准备了两张图片: 图片混合的原理: 我们知道图片存储的是矩阵,你可以理解成编程中的二维数组,比如上面的图片是RGB图片,R 为红,G为绿,B为蓝每个 R 、G、 B 都是 uchar类型,数据量都是为0~255,在图片中位置是 数据 是 B G R的存储顺序。懂数据存储都能明白...原创 2020-05-14 10:40:44 · 484 阅读 · 0 评论 -
opencv 第4课 图像操作
第4课 图像操作传送门:第三课的传送门目录结果图:代码部分:相关知识点记录读写操作:读一个RGB像素点的像素值修改像素值Vec3b与Vec3F今天又开始opencv的课程说明了,本例子比较简单:先上结果图吧:结果图:对应数据部分:代码部分:// imreadT.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#inc...原创 2020-05-12 17:44:35 · 287 阅读 · 0 评论 -
opencv第三课 Mat对象的使用
opencv第三课 Mat对象使用传送门:opencv第二课传送门目录 程序源码代码分析:程序源码今天学习Mat对象的使用,还是比较简单的: 先上代码吧:// opencv_00003.cpp : 定义控制台应用程序的入口点。//#include<iostream>#include <opencv2/opencv.hpp>using namespace std;u...原创 2020-05-09 23:12:14 · 365 阅读 · 0 评论 -
opencv 第二课 矩阵的掩膜操作
第二课 矩阵的掩膜操作本章主要讲述了掩膜的基本理论,与对图片的操作:左边是原始图片,右边是通过掩膜操作生成的图片,对比一下可以看出来差别的。先让我们了解下基本函数:Mat.ptr<uchar>(int i=0) 获取像素矩阵的指针,索引i表示第几行,从0开始计行数。获得当前行指针const uchar* current= myImage.ptr<uchar>(row );获取当前像素...原创 2020-05-08 23:52:55 · 335 阅读 · 0 评论 -
opencv 第一课 简单的图像改变
opencv的第一课传送门opencv的安装与配置目录 加载图像:imread() 显示图像 (cv::namedWindos 与cv::imshow) 修改图像 (cv::cvtColor) 保存图像(cv::imwrite)今天记录简单的一课,有关opencv的简...原创 2020-05-07 21:56:25 · 237 阅读 · 0 评论 -
十分钟教会你 opencv+vs2015 安装与测试
本人计划在5月份把opencv 基础部分学习一下,也是一个挑战,这次学习用到vs2015 + opencv 3.1.0版本,也算巧合,与b站中的课程用的一样,那我也顺便在学习一下。 首先大家要去下载opencv包:https://opencv.org/releases/ 选择你的版本来下,可能下载的很慢,下载完后开始点击...原创 2020-05-07 00:14:21 · 372 阅读 · 0 评论 -
OpenCV + MFC 简单的程序(vs2015)
昨天编写了一个简单的OpenCV 显示图片的历程,想要了解可以看看基本文章入口:OpenCV显示图片 今天给大家使用MFC对OpenCV的编写:1. 首先建立项目: 选择MFC → MFC应用程序,取名字为LoadPicture, 点击确定按钮点击确定后选择基于对话框,点击完成。删除图上的控件,添加一个button按钮,修改ID 为 IDC_OPEN Capt...原创 2020-01-16 15:04:56 · 1337 阅读 · 0 评论 -
OpenCV 简单例子,显示一个图片
本例子基于opencv2的编程,有关opencv的安装请自行百度。打开vs2015,建立win32控制台应用程序,取名为dogPicture,在你的工程目录下添加一张图片,如下图:你可根据自己的图片,取对应的名称:首先我们先看看原版的图片吧:ok,下面开始写代码吧!#include "cv.h" //openv基本的头文件#include <highgui...原创 2020-01-15 17:32:23 · 2169 阅读 · 0 评论