- 博客(14)
- 资源 (3)
- 收藏
- 关注
翻译 矩阵的掩码操作
在矩阵上进行掩码操作很简单,主要的思想就是根据一个掩码矩阵(也称为核)去重新计算一幅图像中的每一个像素值。这个掩码矩阵里面的值将决定临近的像素对新像素值的影响多大。从数学的观点上来看,我们利用我们给定的值做了一个加权平均。我们的测试案例:让我们来考虑这个问题:一幅图像的对比增强方法。基本上我们想要对图像的每个像素应用下面的公式:第一种方式是使用公式,然而第二种是使用一种比前者结
2016-02-29 11:03:00 4553
原创 再谈OpenCV中查询表lookup table的LUT函数
今天在复习之前的OpenCV的学习内容时,发现自己对OpenCV的LUT这个函数理解得不是很透彻,研究了一上午终于是搞明白了,但自己在学习的时候发现对于这个函数的解释很少,现在把自己的理解分享出来,给大家一个参考。 首先看下我测试用的程序:#include #include using namespace std;using namespace cv;#define
2016-02-28 14:00:25 10857 4
原创 关于main主函数的两个参数argc和argv
接触编程有一段时间了,在没学习OpenCV之前,从来就没有去关心过main函数的两个参数怎么传值的问题,貌似之前纯粹的编程main函数根本就不用写参数就直接运行了,似乎也没出什么大问题,今天在做OpenCV的教程How to scan images时,又遇到要给main函数传递参数的问题,而且是图像,真是纠结,后来去查了相关资料,才最终完美解决这个问题,现在分享出来,希望能帮到别人,尤其是初学Op
2016-02-27 21:11:35 1693
原创 OpenCV学习笔记二(scan images)
如何扫描图像、查询表以及OpenCV的时间测量一、目标接下来主要解决下面几个问题:l 如何访问图像的每一个像素?l OpenCV矩阵的值是如何储存的?l 如何衡量我们算法的性能?l 什么是查询表以及为什么我们要使用它?二、测试案例让我们思考一个简单的减少色彩的方法。通过使用unsigned char类型的数据来作为矩阵数据的存储,一个通道的像素可能有最多25
2016-02-27 20:49:09 2550
转载 STL--迭代器(iterator)使用详解
指针与数组指针与其它数据结构呢?比如说链表?存储空间是非连续的。不能通过对指向这种数据结构的指针做累加来遍历。能不能提供一个行为类似指针的类,来对非数组的数据结构进行遍历呢?这样我们就能够以同样的方式来遍历所有数据结构(容器)。迭代器(Iterator)是指针(pointer)的泛化,它允许程序员以相同的方式处理不同的数据结构(容器)。STL中有五种类型的迭代器,它们分
2016-02-27 16:59:47 815
转载 stringstream
使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int
2016-02-27 10:44:52 263
原创 OpenCV学习笔记一(Mat)
MatMat是一个基本的类,它包含两部分的数据:一个是矩阵头,另一个就是一个指向矩阵的指针;对于矩阵头它包含这些信息:矩阵的大小,用来存储的方法以及矩阵存储的地址等,而矩阵中包含着一些像素值(这些像素值的维度取决于我们选择储存的方式)。矩阵头的大小是一个常量,然而矩阵自己的大小却一般不相同,取决于储存的图片。我们在进行图像处理时,需要我们尽可能地减少对哪些很大的图像的一些不必要的复制,
2016-02-26 10:48:50 892
转载 static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:#include using namespac
2016-02-25 21:15:00 290
转载 #pragma预处理指令
#pragma 预处理指令详解 在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。
2016-02-23 16:26:38 267
原创 OpenCV以及C++的头文件的包含方式
在使用OpenCV的时候需要包含头文件,有的是,也有的人是用等方式,不仅仅是OpenCV,在平时的编程中,经常遇到这样的困惑,今天终于是搞明白了,在这里分享一下,希望有同样困惑的人能有收获。首先为了讲解明白,我新建了一个名为“头文件包含方式”的空项目,然后将OpenCV中的一个头文件cv.h来做测试,将其复制成三份,分别重命名为cv1.h,cv2.h,cv3.h,然后将他们分别放在该项目文件夹
2016-02-23 15:59:42 6136
转载 C++的namespace用法详解
namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本质上讲namespace
2016-02-23 14:53:37 9656
原创 OpenCV在VS中的默认配置
1、右键桌面的“计算机”图标然后点击“属性“出现如下界面:2、然后点击”高级系统设置“,如下图所示:3、点击”环境变量“,如下图所示:4、点击”新建“出现如下图所示:5、在变量名里面输入:OPENCV。变量值里面输入你的Opencv的安装地址。注意红方框标记的是你的OpenCV安装地址,安装在哪就是哪。如果把OpenCV安装在E盘Progran Fi
2016-02-22 21:17:14 768
转载 opencv标定
转载请注明来自:http://blog.csdn.net/zhouyelihua/article/details/38421377资源下载见:http://download.csdn.net/detail/zhouyelihua/8748569 看到本文被转载很多次很高兴但是之前的代码有点小问题且不易懂。于是乎写了一个简洁的代码首先介绍用本程序标定的步骤:1,。拍完
2016-02-19 20:19:29 491
转载 齐次坐标的理解
一直对齐次坐标这个概念的理解不够彻底,只见大部分的书中说道“齐次坐标在仿射变换中非常的方便”,然后就没有了后文,今天在一个叫做“三百年 重生”的博客上看到一篇关于透视投影变换的探讨的文章,其中有对齐次坐标有非常精辟的说明,特别是针对这样一句话进行了有力的证明:“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”——F.S. Hil
2016-02-19 15:21:06 562
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人