码迷,mamicode.com
首页 > 其他好文 > 详细

图像预处理(1)

时间:2017-10-13 00:33:22      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:roi   set   mod   san   ros   encoding   自己   vol   图片   

#encoding:utf8
from pylab import mpl
mpl.rcParams[‘font.sans-serif‘] = ["Droid Sans Fallback"]
mpl.rcParams[‘axes.unicode_minus‘] = False
import skimage
from skimage import data
import scipy as sc
import math
import matplotlib.pyplot as plt
import matplotlib
from skimage import io
import matplotlib.font_manager
from skimage.color.colorconv import rgb2gray
import skimage.transform as tt
camera = io.imread("img.jpeg")
plt.imshow(camera)
plt.title(u"这个是原始的图片")
plt.show()
# 灰度公式 Gray = R*0.299 + G*0.587 + B*0.114
(x,y,z) = camera.shape
camera_gray = sc.zeros(shape=(x,y),dtype=int)
‘‘‘
这个是自己写的实现,当然效率不高,但是使用camera[:,:0] 时出现bug。
for i in sc.arange(0,x):
for j in sc.arange(0,y):
camera_gray[i,j]=(camera[i,j,0]*299+camera[i,j,1]*587+camera[i,j,2]*114)/1000
plt.imshow(camera_gray)
plt.show()
‘‘‘
camera_gray=rgb2gray(camera)*255
plt.title(u"这个是灰度处理后的图片")
plt.imshow(camera_gray)
plt.show()

#灰度均衡化
‘‘‘
g=sc.copy(camera_gray)
f,(a1,a2)= plt.subplots(2,1)
agg= sc.reshape(camera_gray,newshape=(x*y))
a1.set_title(u"均衡化前亮度分布")
a1.hist(x=agg,bins=255)
Hc = sc.arange(0,255)
for i in sc.arange(0,x):
for j in sc.arange(0,y):
Hc[int(g[i,j])]+=1
for i in sc.arange(1,255):
Hc[i]=Hc[i]+Hc[i-1]
T = sc.arange(0,255)
for i in sc.arange(0,255):
T[i] = 255*Hc[i]/x/y
for i in sc.arange(0,x):
for j in sc.arange(0,y):
g[i,j]=T[int(g[i,j])]
agg = sc.reshape(g,newshape=(x*y))
a2.set_title(u"均衡化后亮度分布")
a2.hist(x=agg,bins=5)
plt.show()
f,(a1,a2)= plt.subplots(2,1)
plt.title(u"图片差别")
a1.imshow(camera_gray)
a1.set_title(u"处理前")
a2.imshow(g)
a2.set_title(u"处理后")
plt.show()
‘‘‘
#卷机函数平滑
h1 = sc.matrix( [[1.0,1,1],[1,1,1],[1,1,1]] )/9
h = sc.matrix( [[1.0,2,1],[2,4,2],[1,2,1]] )/16
h3= sc.matrix([1,4,6,4,1])
h4=h3.T
#严格意义上的卷机
print sc.signal.convolve2d( h4 ,h3)
#略去边缘new_i 与camera_gray 相同
new_i=sc.signal.convolve2d( camera_gray ,h,boundary=‘symm‘,mode=‘same‘)
plt.title(u"卷机平滑,略去了一些白点")
plt.imshow(new_i)
plt.show()
#为了避免局部模糊,可以使用旋转掩膜平均搜索相邻的点,选取最小化散度来平均的技术

图像预处理(1)

标签:roi   set   mod   san   ros   encoding   自己   vol   图片   

原文地址:http://www.cnblogs.com/ysujiaoyu/p/7658815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!