自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 【VC++、OpenCV3.4】直方图以及相关

直方图(Histogram)均衡化:是一种体改图像对比度的方法,拉伸图像灰度值范围。/*The algorithm normalizes the brightness and increases the contrast of the image.@param src Source 8-bit single channel image.@param dst Destination i...

2018-10-31 11:17:36 465

原创 【VC++、OpenCV3.4】自定义线性滤波——卷积操作

卷积公式:卷积的作用:模糊图像、提取边缘、图像增强(锐化)等。常见卷积核算子:Robert算子,对45度和135度的像素变化敏感。Sobel算子:分别对水平方向和数值方向的像素变化敏感拉普拉斯算子:用于边缘提取#include<opencv2/opencv.hpp>#include<iostream>#include<stri...

2018-10-25 22:21:49 461 1

原创 【VC++、OpenCV3.4】阈值操作

阈值操作:threshold阈值:图像分割的标尺。最简单的就是二值化,大于阈值的像素值全部变成255,小于阈值的像素值全部设置为0.阈值操作其实有很多种类型:阈值二值化,反二值化(threshold binary Inverted)阈值截断(truncate):大于阈值的部分像素值取0,阈值范围内的部分等于原来的像素值。阈值取零(threshold to zero):大于阈值的...

2018-10-25 17:03:02 316

原创 【VC++、OpenCV3.4】图像金字塔-上采样和下采样

图像处理中有一种常见的操作——缩放。最常见的是放大(zoom in)和缩小(zoom out),以及图像金字塔。有时需要对两张不同尺度的图像上匹配一个物体,由于分辨率不一样,需要将图像转换到不同的尺度空间,在不同的尺度空间中寻找特征,在进行后续处理。一次,不同尺度空间的图像金字塔式很有用的。图像金字塔包括:高斯金字塔——用来对图像进行降采样。拉普拉斯金字塔——根据他的上层降采样图片...

2018-10-25 14:49:06 885

原创 【VC++、OpenCV3.4】提取水平和垂直线

很多实际的项目中都会遇到线的提取。比如航拍图片中的电缆线提取,道路交通中的标记线提取(自动驾驶会用到),航母上飞机跑道线的提取等。非常实用也非常重要原理方法:图像形态学操作的时候,可以通过自定义的结构元素实现结构元素对输入图像的一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的心态学操作——膨胀和腐蚀,使用不同的结构元素对输入图像的操作、...

2018-10-25 10:18:38 492

原创 【VC++、OpenCV3.4】膨胀和腐蚀以及形态学操作

相关API:1、构造结构元:/*@param shape Element shape that could be one of #MorphShapes@param ksize Size of the structuring element.@param anchor Anchor position within the element. The default value \f$...

2018-10-24 21:32:58 327

原创 【VC++、OpenCV3.4】图像模糊

OpenCV中Smooth和Blur是图像处理中最简单和常用的操作之一。使用该操作的原因之一就是给图像预处理时候降低噪声。噪声的相关介绍:常见噪声和滤波使用Smooth和Blur操作背后是数学的卷积计算,k和l是窗口的长和宽。通常这些卷积算子都是线性操作,所以又叫线性滤波。1、均值滤波相关API:CV_EXPORTS_W void blur( InputArray src...

2018-10-24 16:56:08 442

原创 【VC++、OpenCV3.4】绘制形状和文字

主要内容:使用cv::Point与cv::Scalar;绘制线,矩形,圆,椭圆等基本几何形状;随机生成与绘制文本。1、cv::Point,表示2D平面上的一个点x,yPoint p;p.x=10;p.y=8;等价于p=Point(10,8);cv::Scalar 表示四个元素的向量Scalar(a,b,c);//a=blue,b=green,c=red表示RGB三个通道,第四个...

2018-10-24 10:03:40 552

原创 【VC++、OpenCV3.4】图像亮度和对比度调整

1、图像变换可以看做像素变换(点操作)和区域上的邻域操作。调整图像亮度和对比度属于像素变换-点操作。其中alpha是增益变量,另外OpenCV是基于RGB的图像操作,0-255,所以a应该是正数。注意:提高亮度和提高对比度是不一样的。亮度是关注像素值,对比度关注像素差值。2、重要的APIMat new_image=Mat::zeros(image..size(),image.t...

2018-10-23 16:16:47 1131 1

原创 【VC++、OpenCV3.4】图像混合

1、线性混合理论:两幅图像的每一个像素线性混合 其中a是0-1范围的值。f0和f1是源图像相关的API(addWeighted)用法:CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2,                              double beta, dou...

2018-10-23 15:16:59 146

原创 【VC++、OpenCV3.4】图像取反操作

相较于指针,有更简单的方式获取像素。指针不适合新手下面介绍处理多通道图像的像素值:这里发现一个很蛋疼的问题:我这个vs2017+OpenCV3.4.1的环境,当鼠标移动到Mat上的时候就会卡死,动不了了,一开始我还以为是电脑的原因。一百度发现好多人都有这个问题。找到解决方案:在Mat的源文件中,将Mat和注释之间加上一个空行,之后就没有这个问题了。——只想说,这个问题让我曾经一度十分崩溃!...

2018-10-22 20:42:49 2687

原创 【VC++、OpenCV3.4】Mat对象

这节记录下图像加载或者读取后的内存对象Mat的相关知识。包括:Mat对象和IplImage对象,Mat对象的使用,Mat定义数组。1、Mat对象和IplImage对象:IplImage对象:是从2001年OpenCV发布就一直存在的,是C语言风格的数据结构,需要开发者自己分配和管理内存,对大的程序来说,使用IplImage对象容易造成内存泄漏的问题。Mat对象:OpenCV2.0以...

2018-10-22 16:36:04 473

原创 【VC++、OpenCV3.4】矩阵掩模mask

这一节主要讲图像在像素级上的操作:掩模。包括获取图像的像素指针,掩模的解释。1、获取图像像素的指针Mat.pt得到Mat对象之后可以由对象获取对象的指针。Mat.ptr<uchar>(int i=0)获取像素矩阵的指针,索引i表示第几行,从0开始计数。获得当前行的指针:const uchar* current=myimage.ptr<uchar>(row);...

2018-10-22 14:03:57 832

原创 【VC++、OpenCV3.4】图像的加载、修改和保存

1、加载图像:cv::imreadimread将一幅图像加载为Mat对象,第一个参数表示文件名称,第二个参数表示加载图像类型,下面的图是对应的类型参数。OpenCV支持常用的格式图像文件。如果载入发生错误,可能需要下载相应的解码器。2、显示图像cv::nameWindow()和cv::imshow()nameWindow的功能是创建一个OpenCV窗口,他是由OpenCV自动创...

2018-10-22 10:45:19 1237

原创 【VC++、OpenCV3.4】环境配置

工作不好找啊,特别是想找个满意的工作。所以,又得捡起OpenCV,不然真的是凉凉了。话不多说:1、首先是下载opencv包。我用的是opencv-3.4.1-vc14_vc15。这部分网上资料很多,下载解压到自定义的位置就好了。这里我解压到了e盘:E:\注意:解压期间可能会有是否添加环境变量的选项。直接选上,如果没有。需要手动添加:在环境变量的path里面加上:        ...

2018-10-21 21:13:18 1236

转载 左值引用和右值引用

转自:https://www.cnblogs.com/qicosmos/p/4283455.html从4行代码看右值引用从4行代码看右值引用概述  右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的:int i = 0;int& j = i;  这里的int&是对左值进行绑定(但...

2018-10-10 10:49:18 367

剑指offerc++代码

剑指offer c++系列代码。具体内容为数据结构和算法。

2018-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除