openCV学习笔记(2)__openCV简单的图片处理(雪花,减少颜色)

openCV简单的图片处理(雪花,减少颜色)

20121012

22:32

   

继而,搭建好平台之后,就可以用openCV进行简单的图片处理.这里的笔记,是在这本书(OpenCV_2_Computer_Vision_Application_Programming_Cookbook)的基础上学习的.,言归正传.

   

第一个函数,在上一个的main函数里面进行实现.

   

雪花:(尊重原文,这里用的是原文的salt函数,撒盐``)

首先,是原图的显示:

   

   

屏幕剪辑的捕获时间: 2012/11/4 22:33

   

这次放在E,就不用用管理员权限来操作了.继续而这次的函数salt,作用是在图上按照自己需要的点数来添加白点.

   

源码://被注释掉的东西表示用来玩的说``

   

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 22:55

   

   

   

   

大概应该可以看得出,rand()%image.cols rand()%image.rows表示的就是图的column(纵列)row(横列),对随机出来的像素进行修改.

   

对于if else 部分:

   

图像的组成,用灰度来表示.比如黑白的图像,用灰度图就可以表示出来.如果面对的是彩图,一般按照三基色(红绿蓝)每个像素由3个基本颜色的不同灰度表示,也就是说,如果image channel3的时候,需要修改三个channel的参数,而如果单单是黑白,channel只有1,那么只要修改一个参数就可以.

可知,255是一个尽头``` 白色``

函数的主体如下:

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 22:56

   

   

//注释的colorReduce是下一个函数

   

运行结果``如下``:

   

   

屏幕剪辑的捕获时间: 2012/11/4 22:58

   

加上10000``?

   

   

屏幕剪辑的捕获时间: 2012/11/4 22:59

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:02

   

如果参数改成0?

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:04

   

结果如下:

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:05

   

撒胡椒的说`` 黑色是白色的另外一端``

每一个像素是又一个8-bit unsigned char型储存,因而色的数目就有256x256x256.数目之大,因而,下面的函数是用来减少颜色的种类的.

   

   

   

函数主体:

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:14

   

   

   

当中的div可以理解为每个灰度级划分的多少.

   

屏幕剪辑的捕获时间: 2012/11/4 23:19

   

这个函数体是主要的处理,例如是256,这个表达就会把[0,div)区间的色素变成div/2,[div,2*div)的就会变成3*div/2,把周围附近的色调简化为一个色调.这样对颜色进行了简化.

   

运行结果如下:

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:22

   

效果不太明显.

   

div换成是64的话:

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:23

   

继续加强的话:

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:24

   

   

   

屏幕剪辑的捕获时间: 2012/11/4 23:24

   

   

随着分化,颜色表示的单调性会让颜色越来越枯燥.

   

函数的主体,salt注释掉,colorReduce加上就好.

   

   

记得要在主体前面加上声明,

   

屏幕剪辑的捕获时间: 2012/11/4 23:26

   

ps:对于colorReduce的函数,主体还有几个方法:

 data[i]=    data[i] – data[i]%div + div/2;

和上述的方法一样,不过这个是先退回到原点在加上div/2

另外一个,是使用位运算:

uchar mask= 0xFF<<n; // e.g. for div=16, mask= 0xF0
data[i]= (data[i]&mask) + div/2;

   

  

原文地址:https://www.cnblogs.com/iamfongbao/p/2754378.html