
Opencv2
暮色渐起
BIT
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
opencv2—(3)遍历图像
我们通过一个例子来简单说明如何遍历图像:减少图像中的颜色数目 CV_8UC3的三通道单字节彩色图像的颜色空间为256*256*256>1600万个,为了降低分析的复杂度,降低颜色数目是有用的。一个简单的算法是把RGB空间划分为同等大小的格子,每个纬度的颜色降低为原来的1/8,那么总的颜色数为32*32*32,原始图像的每个颜色都替换为所在格子中心对应的颜色。算法实现:1、采用指针遍历图像,原创 2017-01-11 16:02:35 · 375 阅读 · 0 评论 -
opencv2—(1)载入、显示及保存图像
opencv2载入、显示及保存图像原创 2017-01-01 10:14:51 · 734 阅读 · 0 评论 -
opencv2—(2)存取像素值
从根本上说,一张图像时一个由数值组成的矩阵,这也是Opencv2用cv::Mat这个数据结构来表示图像的原因。矩阵的每个元素代表一个像素,对于灰度图像,像素有8为无符号数来表示,其中0代表黑色,255代表白色;对于彩色图象,每个像素需要三个这样的8位无符号数来表示三个颜色通道(红蓝绿)。此时矩阵的元素是一个三元数。为了存取矩阵元素,你需要在代码中指定元素所在的行和列。程序会返回相应的元素。如果原创 2017-01-01 17:11:05 · 450 阅读 · 0 评论 -
opencv2—(4)遍历图像和邻域操作
在图像处理中,对当前位置像素的相邻像素计算新的像素值是很常见的操作,当邻域包括图像的前几行和下几行时,你就需要同时扫描图像的若干行本篇介绍的这个例子是对图像进行锐化,它是基于拉普拉斯算子的。将一幅图像减去它经过拉普拉斯滤波之后的图像,这幅图像的边缘部分得到放大,即细节部分得到锐化,这个锐化的算子计算方式如下:sharpened——pixel=5*current-left-right-up-原创 2017-01-11 16:30:51 · 1803 阅读 · 0 评论 -
opencv2—(6)基于类的图像处理程序设计
传统的编程思路都是面向过程的,C++则是面向对象的编程,那么我们设计程序时应该充分使用C++封装的思想,把图像处理抽象成类。这样便于代码的维护和移植。本篇的例子是构建一个简单算法,鉴别出图像中含有给定颜色的所有像素。该算法输入的是图像及颜色,并返回表示含有指定颜色的像素的二值图像。该算法还需要指定另一个参数,即对颜色偏差的容忍度。但由于RGB颜色空间计算颜色之间的距离并不是衡量颜色相似度最原创 2017-01-11 21:41:22 · 1335 阅读 · 0 评论 -
opencv2—(5)感兴趣区的图像算术
由于OpenCV2是C++编写,基于运算符重载,实现了许多我们算数上的操作符重载,其中今天我们着重使用cv::add更准确的说是cv::addWeighted。当然无论是用那种运算都使用cv::saturate_cast来保证输出图像的像素值在合理的范围内。本篇我们想合并两个不同大小的图像。例如把一个小的logo加到我们的测试图像上。我们不能直接使用add函数,我们要先定义感兴趣区域(ROI原创 2017-01-11 17:17:35 · 376 阅读 · 0 评论 -
opencv2—(8)查找表修改图像外观
图像直方图捕捉方式呈现一个场景使用可像素强度值。通过分析像素值得分布在一个图像,可以使用此信息来修改甚至可以提高一个图像。查找表定义了如何将像素值转换为新的值。表的第i项表示相应对应灰度的新值。newIntensity= lookup [ oldIntensity ] ; OpenCV cv::LUT 对图像应用查找表以生成新图像。可能说到这里,大家还是不太清楚怎么用,下面写两个函数来创建不原创 2017-02-23 11:12:07 · 921 阅读 · 0 评论 -
opencv2—(7)计算图像的直方图
一个图像有不同的像素值构成,像素值在图像中的分布情况是这幅图片的一重要特征。直方图可以描述图像内容、检测图像中的特定对象或纹理,你将学习如何计算直方图来修改图像外观。opencv提供了 cv::calcHist这个函数,可以计算任意类型的多通道图像。下面我们先定义一个类classHistogram1D,成员变量private: float m_hranges[2];//原创 2017-02-23 11:09:37 · 608 阅读 · 0 评论