OpenCV中对图像的基本操作
清溪算法
这个作者很懒,什么都没留下…
展开
-
0002-OpenCV对图像进行读取→显示→保存的源码!
代码流程如下: 读取源图像→转化化灰度图→保存输出图片文件到本地代码如下: 代码中涉及到的图片下载地址:http://pan.baidu.com/s/1c14zqik 密码:lil3图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注! //opencv版本:OpenCV3.0 //VS版本:VS2013 //Author:qxsf321.net...原创 2018-11-13 15:17:01 · 258 阅读 · 0 评论 -
0003-OpenCV中重映射函数remap的使用,以图像在x和y方向的翻转为例!
首先介绍一下remap函数! remap就是用来做重映射的,重映射的含义这里先不讲,大家看完这篇文章就知道了! 函数原型如下: C++: void remap(InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderMode=BORDER_CONSTANT, c...原创 2018-11-13 15:36:47 · 1217 阅读 · 0 评论 -
0004-用OpenCV实现图像平移的代码(分图像尺寸不变和变两种情况)
图像平移是啥东西就不用讲了吧!需要注意的是图像平移有两种,第一种是平移后图像大小不变,这样会损失图像的部分;第二种是平移后图像大小变化,这样原图像不会有损失。 直接上代码,大家看效果吧! 代码流程如下: 读取图像→显示原图像→调用自定义的函数translateTransform,作平移后图像大小不变的平移处理并显示处理结果→调用自定义的函数translateTransformSize,作平移后...原创 2018-11-13 15:43:45 · 849 阅读 · 0 评论 -
0005-用OpenCV的resize函数实现图像的缩放
图像缩放是什么意思这里不用说了吧! 在OpenCV中用resize函数实现图像的缩放,下面介绍这个函数!resize函数原型如下: C++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )参数意义如下:src:源图像...原创 2018-11-13 15:48:37 · 339 阅读 · 0 评论 -
0006-用OpenCV的仿射变换函数warpAffine实现图像的任意角度旋转!
图像旋转的含义这里就不说了。 说下仿射变换的含义,仿射变换实际上是一种线性变换,通过这种变换,可以实现图像的平移、缩放、翻转、旋转、剪切等操作。 在OpenCV中可以通过函数getRotationMatrix2D和函数warpAffine的联合使用,对图像进行任意角度的旋转。使用方法如下: 先根据旋转参数,由函数getRotationMatrix2D计算出仿射变换矩阵,然后再将仿射变换矩阵代入...原创 2018-11-13 15:55:16 · 383 阅读 · 0 评论 -
0009-利用setMouseCallback函数实现鼠标对图片窗口的操作
本程序实现鼠标对图片窗口的操作。 本程序利用setMouseCallback函数将图像窗口与对应的鼠标处理函数映射起来!在这个程序中: ①当鼠标左键在图像上某点点击时,显示这个点的坐标,并在图像上该点处划圆; ②当鼠标左键没有按下时,鼠标移动时,则会显示鼠标所在点的实时坐标; ③当鼠标左键按下不放并且鼠标移动时,则在图像上划矩形,当鼠标放开后,则会把相应的矩形区域提取出来显示在另一个窗口中。程序...原创 2018-11-13 16:37:19 · 587 阅读 · 0 评论 -
0010-OpenCV对图像或矩阵元素遍历的四种方法
图像的点或矩阵中的元素,是我们进行运算时的基本元素,所以遍历图像的操作是经常要用到的,本文的代码用四种方式实现图像的遍历。 我们通过元素遍历实现对图像降色彩处理,因为256*256*256种颜色实在太多了,在图像颜色聚类或绘制彩色直方图时,我们需要用一些代表性的颜色代替丰富的色彩空间,此时可以将每个通道的256种颜色用64种代替,即将原来256种颜色划分64个颜色段,每个颜色段取中间的颜色值作为...原创 2018-11-13 16:44:56 · 1338 阅读 · 0 评论 -
0011-OpenCV单窗口显示多幅图像的代码
有时我们要在一个窗口中显示多幅图像,以利于我们对比结果。 为了实现这个效果中,我们可以在一幅大图中把各幅图绘制上去,这其中关键是要知道各幅图绘制在大图中的哪个区域,我们可以利用Mat类对操作符“()”的重载之一,来标定区域,重载操作的函数原型如下: C++: Mat::operator()(const Rect& roi) const 具体怎么使用,大家看代码便知,如果代码看着比较吃力,建...原创 2018-11-14 11:36:39 · 309 阅读 · 0 评论 -
0012-用OpenCV批量读取图片的三种方法
有时我们需要批量读取图片,所以我们有必要知道怎么在OpenCV开源环境下批量读取图片! 批量读取图片的关键是如何让程序知道文件夹下图片的名字! 第一种方法: 这种方法只针对图片名字有规律的情况,比如: ***(0).jpg ***(1).jpg ***(2).jpg ***(3).jpg .................. 源代码如下: 代码中用到的图片下载链接为:http://pan.b...原创 2018-11-14 12:00:44 · 3357 阅读 · 1 评论