opencv
qq_18741601
这个作者很懒,什么都没留下…
展开
-
顶帽和底帽
顶帽是指原图像和开操作图像之间的差值,可去除图像中小对象,顶帽变换一个重要用途是校正不均匀光照的影响。底帽是指闭操作减原图像,可用于填洞。...原创 2019-06-19 09:11:46 · 880 阅读 · 0 评论 -
opencv-阈值操作
阈值分割5种方法寻找阈值2种方法double cv::threshold (InputArray src, OutputArray dst, double thresh, double maxval, int type ) 参数含义src输入,要求是单通道图像thresh门限值max...原创 2019-07-05 16:41:26 · 240 阅读 · 0 评论 -
图像处理进行归一化的各种理由。
matlab图像处理为什么要归一化和如何归一化,一、为什么归一化1. 基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响。也就是转换成唯一的标准形式以抵抗仿射变换 图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。 因为我们这次的图片有好多都是一个系列的,所以老师把这个也作为我研究...转载 2019-07-03 23:24:51 · 2181 阅读 · 0 评论 -
opencv-图像上采样和降采样
1 图像金字塔概念:1.1我们在图像处理中常常会调整图像大小,最常见就是放大和缩小,这里我们介绍图像金字塔。1.2 一个图像金字塔式,最底下一张是图像的最大尺寸,图像变大称之为上采样。反之。2 高斯金字塔概念:2.1 高斯金字塔是从底向上,逐层降采样得到。2.2 降采样之后图像大小是原图像的一半行,一半列大小。3 高斯金字塔生成分为两步:3.1对当前层进行高斯模糊3.2删除偶数行...原创 2019-07-03 23:21:21 · 702 阅读 · 0 评论 -
形态学操作-提取水平与垂直直线
#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;int main(int argc, char** argv) { //1、加载源图像,并检查它是否加载成功,然后显示它: Mat src = imread("C:/opencv/sources/samples/data/notes....原创 2019-07-03 22:20:37 · 323 阅读 · 0 评论 -
图像像素操作
灰度图像:img.at<uchar>(y,x)=128; RGB图像:img.at<Vec3b>(y,x)[0]=128;lVec3b对应三通道的顺序是blue、green、red的uchar类型数据。lVec3f对应三通道的float类型数据#include<opencv2/opencv.hpp>#include<iostream>...原创 2019-06-11 10:58:48 · 363 阅读 · 0 评论 -
cvtColor和cvCvtColor区别
★C++接口: void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )//InputArray:接口类可以是Mat、Mat_、Mat_<T, m, n>、vector、vector<vector>、vector★C接...转载 2019-06-11 10:28:21 · 640 阅读 · 0 评论 -
Mat对象的构造
1.部分复制:一般情况下,只会复制Mat对象的头和指针部分,不会复制数据部分。(相当于C++中的指针)Mat A=imread(imgFilePath);Mat B(A);2.完全复制:复制头部和数据部分(相当于C++中的拷贝一份备份)Mat F=A.clone();3.Mat M(3,3,CV_8UC3,Schalar(0,0,255)),第一个参数表示行数,第二个参数表示列数,第三...原创 2019-06-11 09:27:15 · 133 阅读 · 0 评论 -
opencv 掩膜操作
掩膜操作就是为了提高图片的对比度,运用上面的公式对图片从左到右,从上到下进行运算,使得明处更明,暗处更暗,使图片变得更加立体感。以下是代码实现:int cols = (src.cols - 1)*src.channels(); int offsetx = src.channels(); int rows = src.rows; dst = Mat::zeros(src.size...原创 2019-06-10 23:13:48 · 492 阅读 · 0 评论 -
OpenCV3:通道和位深的理解含义整理(CV_8UC1,CV_8SC1,CV_32FC1)
矩阵数据类型:– CV_<bit_depth>(S|U|F)C<number_of_channels>S = 符号整型 U = 无符号整型 F = 浮点型CV_8UC1 是指一个8位无符号整型单通道矩阵,CV_32FC2是指一个32位浮点型双通道矩阵CV_8UC1 CV_8SC1 CV_16U C1 CV_16SC1CV_8UC2 CV_8SC2 CV_16UC...转载 2019-06-10 21:19:41 · 819 阅读 · 0 评论 -
opencv形态学一:腐蚀与膨胀
形态学的四个基本操作:腐蚀、膨胀、开、闭、顶帽、黑帽。腐蚀:腐蚀就是对一副图像做卷积运算,然后将结构体中的最小值赋给卷积核的中心。使得总体的暗区域增加。膨胀:膨胀就是对一副图像做卷积运算,然后将结构体中的最大值赋给卷积核的中心。使得总体的亮度增加。结构体形状可以为任意形状。#include<opencv2/opencv.hpp>using namespace cv;///...原创 2019-06-16 13:53:44 · 184 阅读 · 0 评论 -
图像高斯模糊和均值模糊
模糊原理:模糊原理和上几节说的图像掩模矩阵有很多相似的地方,都是拿一个矩阵(3X3, 5X5)等,和原图从左向右从上到下分别进行卷积,将卷积值最后赋值个当前卷积的中心像素。那么其最关键的参数,也就在于矩阵的大小和矩阵的值,我们通常称矩阵为卷积核。模糊操作的重要原因之一也是为了给图像预处理时降低噪声。均值模糊:均值模糊,也称为均值滤波,相当于卷积核的矩阵值全部为1/(卷积...原创 2019-06-14 17:04:42 · 1482 阅读 · 0 评论 -
opencv-卷积边界处理
边界默认、常数、复制、包装、copyMakeBorder()图像边界卷积时的问题:图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理(如下图)。边界处理方法:在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘,这样就确保图像的...原创 2019-07-07 14:12:24 · 1380 阅读 · 0 评论