自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 MFC控件数据交换:DDX

MFC中操纵控件   操作控件的两种方式:   方式1 通过调用CWnd::GetDlgItem()函数,根据控件ID获取控件对象指针,操作控件即可。         对话框的初始化函数:OnInitDialog()      方式2 对话框的数据交换技术(DDX)    将控件和一个成员变量绑定,可以通过操作成员变量达到操作控件的目的。   1 定义与控件绑定的成员变

2017-10-30 15:51:58 447

转载 OpenCV ——双线性插值(Bilinear interpolation)

1,原理  在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值,兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中的插值效果和运算速度,运用比较广泛。  越是简单的模型越适合用来举例子,我们就举个简单的图像:3*3 的256级灰度图。假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source):       2

2017-10-28 14:51:31 2979

转载 关于C++中的虚拟继承的一些总结

1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:p

2017-10-24 11:29:43 136

转载 C++ Virtual详解

Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Ba

2017-10-24 11:21:30 152

转载 Opencv Mat矩阵中data、size、depth、elemSize、step等属性的理解

data:         uchar类型的指针,指向Mat数据矩阵的首地址。可以理解为标示一个房屋的门牌号;dims:         Mat矩阵的维度,若Mat是一个二维矩阵,则dims=2,三维则dims=3,大多数情况下处理的都是二维矩阵,是一         个平面上的矩阵。        可以理解为房屋是一个一层的平房,三维或更多维的则是

2017-10-21 21:39:25 312

转载 opencv像素基本操作及图像遍历at

矩阵元素的表达:对于单通道图像,其元素类型一般为 8U (即 8位无符号整数),当然也可以 是 16S 、32F32F 等;这些类型可以直接用 uchar 、short 、float等 C/C++语言中的基本数据类型表达。如果多通道图像,如RGB彩色图像,需要用三个通道来表示。在这种情况 下,如果依然将图像视作一个二维矩阵那么矩阵的元素不再是基本数据类型。opencv中使用

2017-10-21 16:49:08 339

转载 OpenCV里面Mat方法中的Scalar详解

OpenCV参考手册2.3.1中第15页,有这么一个例子:// make a 7x7 complex matrix filled with 1+3j.Mat M(7,7,CV_32FC2,Scalar(1,3));解释如下:创建一个M矩阵,7行7列,类型为CV_32F,C2表示有2个通道。Scalar(1,3)是对矩阵进行初始化赋值。第一个通道全为1,第2个通道全为3。具体见一

2017-10-21 16:18:37 955

转载 一些关于Canny边缘检测算法的改进

传统的Canny边缘检测算法是一种有效而又相对简单的算法,可以得到很好的结果(可以参考上一篇Canny边缘检测算法的实现)。但是Canny算法本身也有一些缺陷,可以有改进的地方。1. Canny边缘检测第一步用高斯模糊来去掉噪声,但是同时也会平滑边缘,使得边缘信息减弱,有可能使得在后面的步骤中漏掉一些需要的边缘,特别是弱边缘和孤立的边缘,可能在双阀值和联通计算中被剔除。很自然地可以预见,如

2017-10-21 15:59:30 19478 3

转载 opencv2函数学习之threshold:实现图像阈值化

在opencv2中,threshold函数可以进行阈值化操作。double threshold( const Mat& src, Mat& dst, double thresh,double maxVal, int thresholdType );参数:src:原图像。dst:结果图像。thresh:当前阈值。maxVal:最大阈值,一般为255

2017-10-21 15:56:11 231

转载 Canny边缘检测算法的实现

点击打开链接图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波。我们知道微分运算是求信号的变化率,具有加强高频分量的作用。在空域运算中来说,对图像的锐化就是计算微分。由于数字图像的离散信号,微分运算就变成计算差分或梯度。图像处理中有多种边缘检测(梯度)算子,常用的包括普通一阶差分,Robert算子(交叉差分),Sobel算子等等,是基于寻找梯度强度。拉普拉斯算子(二阶

2017-10-21 10:50:38 846

转载 霍夫线变换的原理与实现

本文从此处转载点击打开链接【1】众所周知, 一条直线在图像二维空间可由两个变量表示. 如: 在笛卡尔坐标系: 可由参数: 斜率和截距(m,b) 表示。在极坐标系: 可由参数: 极径和极角表示。 对于霍夫变换, 我们将采用第二种方式极坐标系来表示直线. 因此, 直线的表达式可为: 化简便可

2017-10-21 09:36:47 1135

原创 point 问题

//【4】依次在图中绘制出每条线段      for( size_t i = 0; i     {          float rho = lines[i][0], theta = lines[i][1];          Point pt1, pt2;          double a = cos(theta), b = sin(theta);          d

2017-10-20 22:09:36 246

转载 Canny边缘检测算法原理及其VC实现详解

图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位,自从1959提出边缘检测以来,经过五十多年的发展,已有许多中不

2017-10-20 21:52:53 573

转载 opencv 霍夫变换检测直线中pt1、pt2点的确定

学习hough变换,对其中的pt1.x = cvRound(x0 + 1000*(-b));不是很理解。最终在别的博客中找到了答案,现拿来分享下。pt1与pt2点的计算方法 。这里已知下图中的rh0 和θ,现在只需要求图中“任意”两点, 就能用cvLine画出pt1 -> pt2的直线 。看看下图 就明白这里1000什么的是为什么了。这里是取了点(x0,

2017-10-20 21:49:35 377 1

空空如也

空空如也

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

TA关注的人

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