学习opencv3
学习《数字图像处理》和《学习opencv3》两本书,记录的学习笔记。
ShaYX1991
从事软件设计开发的热情小白!
展开
-
图像边缘检测总结
1 边缘检测的一般步骤1.1 滤波边缘检测的算法可以就是对图像像素点进行求导,但是噪声本身就是异常点,因此导数对噪声很敏感,所以首先需要使用滤波器来降低或消除噪声的影响。常用的滤波器就是之前提到的五种,根据实际情况进行选用,底线是不对图像轮廓造成损害。当然如果不是噪声类型特别明显的情况,其中最常用的就是高斯滤波器了。1.2 增强增强边缘的基础是确定图像各点邻域强度的变化值,将图像灰度点邻...原创 2019-01-11 20:36:11 · 1886 阅读 · 0 评论 -
微分滤波器总结
微分滤波器本质:逻辑上,平滑使用的是积分,锐化则应使用微分。1.索贝尔(Sobel)导数索贝尔算子可以实现任意阶导数和混合偏导数。本质:求得图像的一阶或二阶近似梯度图像。void Sobel( InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = ...原创 2019-01-11 20:34:54 · 7394 阅读 · 0 评论 -
平滑滤波器总结
平滑滤波器总结本质:对像素点领域的像素值施于某种算法,以其结果替代锚点处对应的像素值。平滑(模糊)目的:减少噪声和伪影。opencv一共提供了5种平滑操作。1.均值滤波器算法原理:以邻域像素点的平均值代替像素点的值。void blur( InputArray src, OutputArray dst, Size ksize, Point ...原创 2019-01-11 19:03:09 · 22792 阅读 · 2 评论 -
OpenDDS简单示例
OpenDDS简单示例1 概述对于一个搞软件的人来说,接触一个新软件或库或架构,最先想的肯定不是它是如何实现的,而是想让它运行起来,看看效果。所以刚接触OpenDDS,首先想的也是写个小demo,尽管OpenDDS开发指南中已经详细介绍了一个小例子,但这里还是再次说明一下详细开发步骤。前提环境:vs2015 安装好的perl编译并配置好的OpenDDS。不会请看https...原创 2018-12-26 21:59:54 · 15574 阅读 · 6 评论 -
图像的傅里叶变换
图像的傅里叶变换傅里叶变换大家想必早就了解了,网上资料也很多,如何推导有何意义都说的很明白了,在这里就不作赘述。今天我想讲的是OpenCv中如何对傅里叶图像进行变换,生成频谱图。先看如何生成一幅图像的频谱图:源码:#include "QtGuiApplication1.h"//#define Ui#ifndef Ui#include <QFileInfo>#incl...原创 2019-01-10 22:04:46 · 1613 阅读 · 0 评论 -
OpenCv掩摸详解
掩模Mask详解在OpenCv中,许多API的参数中都有Mask(掩模)这么一个参数。很多资料都有一句话带过:规定所要操作的区域。那么他到底是怎么使用的?内部具体过程是什么?今天通过小例子来解答。Mat sor(Size(5, 5), CV_8UC1, Scalar(0));std::cout << sor << std::endl;Mat mask(Size(5...原创 2019-01-10 22:02:07 · 432 阅读 · 0 评论 -
图像的叠加、混合、分离
图像的叠加、混合、分离1 感兴趣区域ROI ROI(region of interest)感兴趣区域,在图像处理过程中,有时候我们希望对图像中的某些区域进行处理,也就是仅对某些区域感兴趣,那么我们就可以定义我们的ROI区域。方法:定义一个Rect来表示或指定行列范围。Mat roi1, rot2;// 左上角roi1 = img(Rec...原创 2019-01-10 22:00:25 · 8684 阅读 · 0 评论 -
opencv 基于图像单像素点的处理
1 基于图像单像素点的处理看过数字图像处理一书的都知道,图像处理中基于像素点的处理分为两种灰度变换:本质就是基于单像素点的变化处理。空间滤波:本质就是基于邻域像素点的变化处理。今天要讲的是在OpenCv下基于基于单像素点的处理,其中会讲到OpenCv针对单像素处理封装好的一些ApI,即实质原理。1.1 图像像素点的访问要进行基于单像素点的处理,首先就必须知道,给你一幅图,你如何去访问图...原创 2019-01-10 21:54:51 · 3008 阅读 · 0 评论 -
第8章 OpenCv 图像、视频与数据文件
第8章 OpenCv 图像、视频与数据文件1 HighGUI模块HighGUI:OpenCv把用于操作系统、文件系统以及摄像机等硬件设备交互的函数纳入到HighGUI模块中。即图像的输入输出、视频的输入输出和图形界面相关功能。HighGUI分为三个部分:(1) 硬件部分硬件部分最主要是对摄像机的操作。(2) 文件系统部分文件系统部分的主要工作是完成图片的载入和保存。(3) 窗口(G...原创 2019-01-05 18:10:25 · 23917 阅读 · 5 评论 -
第五章 矩阵(Mat)操作
基本的矩阵和图像算子函数名称 描述abs() 计算矩阵中所有元素的绝对值absdiff() 计算两个矩阵差值的绝对值add() 实现两个矩阵逐元素相加addWeighted() 实现两个矩阵逐元素加权求和bitWise_and() 计算两个矩阵逐元素按位与bitWise_not() 按位非bitWise_or() 计算两个矩阵逐元素按位或bitWise_xor() 计算两个矩阵...原创 2019-01-05 18:03:24 · 585 阅读 · 0 评论 -
第四章 OpenCv的数据类型
第四章 OpenCv的数据类型 1 直接从C++继承来的基础数据类型本质:这类数据类型直接从C++原语中继承而来,仅仅是稍加修饰,如int、float、及简单数组和矩阵,同时也有一些代表简单几何概念的数据类型,如点、矩形、大小等。OpenCv中6种基本数据类型缩写:b = unsigned charw = unsigned shorts = shorti = intf = floa...原创 2018-12-24 19:39:38 · 403 阅读 · 0 评论 -
第三章 OpenCv基本入门使用
第三章 OpenCv基本入门使用1 头文件说明头文件集中地:opencv2/opencv.hpp该头文件包含了opencv各个模块的头文件,如果是仅仅刚开始学习OpenCv而不是正式开发实际项目,那么为了简单,可以直接引用opencv2/opencv.hpp头文件,一股脑的将所有模块的头文件包含进来。2 显示一张图片示例代码:/// &amp;lt;summary&amp;gt;/// 描述:利用O...原创 2018-12-24 19:25:02 · 197 阅读 · 0 评论 -
第二章 Opencv下载和安装
第二章 Opencv下载和安装 仅介绍windows系统下的安装。1 OpenCv获取 官方网站:https://opencv.org/ Github地址:https://github.com/opencv/opencv2 使用编译好的库 下载OpenCv后会得到一个exe文件,直接运行会解压得到编译好的库。里面就有编译好的dll动态库opencv_world400.dl...原创 2018-12-19 22:54:03 · 3250 阅读 · 0 评论 -
第一章 Opencv概述
第一章 OpenCv概述1 什么是OpenCv OpenCv是一个开源的计算机视觉库,该项目由Gary Bradski带头启动,OpenCv库使用C和C++语言编写,并进行了深度的优化,内部许多函数都使用多线程进行加速。可在Windows、linux、MacOS X等系统上运行。OpenCv的一个目标是提供易于使用的计算机视觉库,从而帮助人们快速建立精巧的视觉应用。OpenCv库包含...原创 2018-12-19 21:51:46 · 1142 阅读 · 1 评论