文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>python 简单图像处理(12) 伪彩色增强

python 简单图像处理(12) 伪彩色增强

时间:2010-12-29  来源:想兰

利用这一特点么就可以把人眼不敏感的灰度信号映射为人眼灵敏的彩色信号,以增强人对图像中细微变换的分辨率

在图像处理技术中,彩色增强应用十分广泛且效果显著

常见的彩色增强技术主要有假彩色增强和伪彩色增强两大类

 

(1)假彩色增强

思路是将灰度分层几级,比如我们这里将灰度分为16级

然后每一级灰度对应一种彩色

在查看原图中某像素,找出它所属的灰度级,用相应的彩色代替就行了

(2)伪彩色处理

由灰度值根据一定的映射关系求出R,G,B的值

组成该点的彩色值

典型的映射关系图为

 

编写程序:

import cv

def Color(image):
w
= image.width
h
= image.height
size
= (w,h)
iColor
= cv.CreateImage(size,8,3)
for i in range(h):
for j in range(w):
r
= GetR(image[i,j])
g
= GetG(image[i,j])
b
= GetB(image[i,j])
iColor[i,j]
= (r,g,b)
return iColor

def GetR(gray):
if gray < 127:
return 0
elif gray > 191:
return 255
else:
return (gray-127)*4-1


def GetG(gray):
if gray < 64:
return 4*gray
elif gray > 191:
return 256-(gray-191)*4
else:
return 255

def GetB(gray):
if gray < 64:
return 255
elif gray > 127:
return 0
else:
return 256-(gray-63)*4

def FColor(image,array):
w
= image.width
h
= image.height
size
= (w,h)
iColor
= cv.CreateImage(size,8,3)
for i in range(h):
for j in range(w):
iColor[i,j]
= array[int(image[i,j]/16)]
return iColor

FCArray
= [(0,51,0),(0,51,102),(51,51,102),(51,102,51),\
(
51,51,153),(102,51,102),(153,153,0),(51,102,153),\
(
153,102,51),(153,204,102),(204,153,102),(102,204,102),\
(
153,204,153),(204,204,102),(204,255,204),(255,255,204)]
image
= cv.LoadImage('lena.jpg',0)
iColor
= Color(image)
iFColor
= FColor(image,FCArray)
cv.ShowImage(
'image',image)
cv.ShowImage(
'iColor',iColor)
cv.ShowImage(
'iFColor',iFColor)
cv.WaitKey(0)

效果如下:

中间为假彩色增强

右边是伪彩色增强

把原本变化不明显的灰度值转变为直观的彩色的变化

好了,伪彩色增强处理相对比较简单。也没有太多可讲的,就到这里吧!

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载