图像处理学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u011011827/article/details/101120784
  • 计算机视觉能做什么
图像分类
	将只有一个桌子的图片中的桌子分辨为桌子
目标检测
	将图像中的桌子和椅子分别用框框框出来,且框尽量小
目标追踪
	在视频的第一帧中检测到一个目标,并框出来,然后在第二帧以及往后的帧中框出目标
风格迁移
	将A图片中的风格a和B图片中的目标b相结合,做出图片C(风格a的目标b)
超像素
	将一个像素做成多个像素(去马赛克,旧照片翻新)
图像拼接
	A图片右边为目标z,B图片左边为目标z,可以将A和B图片拼接到一块(重合目标z)
语义分割
	将图像中的桌子中的所有像素标红(只能标桌子的像素)
人脸识别
	将图像中的人识别为人。(用于安检)

  • 图片在计算机中的表示
众所周知,在计算机的世界里面信息是01表示的。
到底01 是怎么表示图像的呢?
  • 灰度图
2*2 4个像素,8bit/像素 的图片
0b1111 1111表示白,0b0000 0000表示黑, 0b0111 1111 表示灰 (当然 0b0000 00000b1111 1111 中间的数值都可以表示一个像素的颜色)

黑白图片就是用一个矩阵表示出来的
-						  -
| 0b00000000  	0b00000101|
| 0b11100110 	0b00101011|
-						  -
  • 彩色图
2*2 4个像素,8bit/像素 的图片

彩色图就是用3个矩阵表示出来的,R矩阵,G矩阵,B矩阵。

0b1111 1111表示满,0b0000 0000表示空, 0b0111 1111 表示半空 (当然 0b0000 00000b1111 1111 中间的数值都可以表示一个色素的颜色)
			
			R矩阵
-						  -
| 0b00000000  	0b00000101|
| 0b11100110 	0b00101011|
-						  -

			G矩阵
-						  -
| 0b00000000  	0b00000001|
| 0b11101110 	0b00101011|
-						  -

			B矩阵
-						  -
| 0b00000010  	0b00001101|
| 0b11101110 	0b00001011|
-						  -
  • 对黑白图片的分析
灰度直方图
	展示灰度为x(例如0b00001000)的比例为多少
	可以知道这张图是偏白(整体偏右)还是偏黑
	可以知道对比度是大还是低(像素集中)

  • 对矩阵的处理
去噪
	现象:周围是一些35-50的点,但是突然出现几个255()0()的点,这个点叫做椒盐噪点
	处理,将255 或者 0 点 改为 35-50 的点, 这个过程叫做磨平。过程中用到了滤波器,也叫核(kernel)。用核(3*3)在矩阵中滑动,叫做卷积。这个核每滑动一次,会对核心的数据进行修改一次。
		原图像为 S*S , 核为N*N,步长为K,那么卷积处理的数据的长宽为 [S-N+1/K] 的上取整,最外面那圈数据就不要了??为什么
		为了保存最外面那圈数据,就做一个处理,将外面在扩充一圈,叫做padding,至于扩充的数据为什么,一般为0或者255。也可以是其他的数。
		如果padding A圈那么 卷积处理的数据的长宽就变为了 [S+2*A-N+1/K] 
		
	
	核心数据修改方法:
		平均滤波:
			方法:修改后的核心数据 = 1/9 的 核内的 9个数
			问题:再怎么平均,椒盐噪点还是对最终数据有影响
		中值滤波:
			方法:修改后的核心数据 = 核内的 9个数的中位数
	
	

全连接神经网络

  • 一层线性网络
--------------一层网络
输入1			网络	输出1 	
输入2			网络	输出2
.						.
.				网络	.
.				网络	.
输入N					输出K

网络的函数为 多元一次方程
Yk = X1Wk1 + X2Wk2 + ... + XnWkn + Bk
所以对应所有的网络,需要 N*K 个W(权重), K个B(bias)
所谓的网络训练就是不断更新 N*K 个W(权重), K个B(bias)
  • 多层线性网络
--------------多层网络
输入1			网络1		网络2	...		输出1 	
输入2			网络1		网络2	...		输出2
.							.
.				网络1		网络2   ...
.				网络1		网络2   ... 
输入N										输出K

网络的函数为
Yk(next) = X1(prev)Wk1 + X2(prev)Wk2 + ... + Xn(prev)Wkn + Bk(prev)
所以对应所有的网络,需要 N*K 个W(权重), K个B(bias)

  • 非线性网络
线性网络在图片上划出的线都是直线,有时候需要用曲线分割图像,所以需要非线性网络???
对应的需要 在 多元一次方程上添加一个激活函数

激活函数分类
	sigmoid函数
		将所有的值通过运算出来,结果范围为0~1
	tanh函数
		将所有的值通过运算出来,结果范围为-1~1
	relu函数(用的比较广泛)
		小于0不激活,大于0开始激活
	leaky relu
		小于0激活度小,大于0激活度大

猜你喜欢

转载自blog.csdn.net/u011011827/article/details/101120784