当前位置: 首页 > 专利查询>彭志勇专利>正文

灰度图像的保存方法和灰度图像原始像素的获取方法技术

技术编号:15650397 阅读:85 留言:0更新日期:2017-06-17 03:23
本发明专利技术提供了一种灰度图像的保存方法,该方法包括:将灰度图像保存为RGB或RGBA格式的PNG图像。本发明专利技术还提供了一种获取以上述方法保存的灰度图像的原始像素的方法,该方法包括:基于所述方式,分别从所述RGB或RGBA格式的PNG图像的R、G、B或R、G、B、A的通道中取出对应于各个通道的像素值;将各个通道的像素值取出并分别将所述像素值向左移动一定位数,最后将左移后的每段像素值相加,由此得到所述灰度图像的原始像素值;或将各个通道的像素值取出并分别将所述像素值向左一定位数后,再将移位后的所述像素值整体向左移动一定位数,由此得到所述最原始的像素值。上述方法能够解决浏览器在解析或展示PNG图像时会造成灰度图像精度损失的问题。

【技术实现步骤摘要】
灰度图像的保存方法和灰度图像原始像素的获取方法
本专利技术涉及灰度图像的保存方法和灰度图像原始像素的获取方法,特别是使用PNG文件保存灰度图像的方法以及以PNG文件格式保存的灰度图像的原始像素的获取方法。
技术介绍
由于浏览器在解析或展示16位的PNG图像时,会默认把16位的PNG压缩成8位的灰度图像,从而使用浏览器的Image或者Canvas对象解码和显示16位灰度的PNG时,造成灰度图像的精度的损失。例如,使用Image对象直接加载PNG图像,然后使用Canvas图像的Drawimage方法绘制刚刚加载的PNG图像,并通过Canvas图像的getimagedata方法取得指定区域的像素值;或者使用Image对象直接加载PNG图像后,直接把该Image变成WebGL(WebGraphicsLibrary,一种3D绘图标准)里的纹理对象(textture),在WebGL的Shader变成语言(GLSL)里直接使用纹理的某点的像素值。WebGL做了归一化处理,即会把8位的像素值除以255变成0到1的小数。对于16位的灰度图像,WebGL会把图像先变成8位的灰度图像,然后再做归一化处理,即生成的小数里没有低8位的细节信息。
技术实现思路
本专利技术的目的在于提供一种灰度图像的保存方法和灰度图像原始像素的获取方法,以解决浏览器在解析或展示PNG图像时会造成灰度图像精度损失的问题。本专利技术提出了一种灰度图像的保存方法,包括:按一定的方式将所述灰度图像的像素值截取成几段,分别存储在R、G、B或R、G、B、A的各个通道里。优选方案是:还包括:在一些不用的通道里加入随机值。本专利技术提出了一种获取如上述任一权利要求所述的方法保存的灰度图像的原始像素的方法,包括:基于所述方式,分别从所述RGB或RGBA格式的PNG图像的R、G、B或R、G、B、A的通道中取出对应于各个通道的像素值;将各个通道的像素值取出并分别将所述像素值向左移动一定位数,最后将左移后的每段像素值相加,由此得到所述灰度图像的原始像素值;或将各个通道的像素值取出并分别将所述像素值向左一定位数后,再将移位后的所述像素值整体向左移动一定位数,由此得到所述最原始的像素值。优选地,将各个通道的像素值取出并分别将所述像素值向左一定位数,包括:将各个通道的像素值取出并分别乘以2N,其中,N为每段像素的左移位数,等于灰度图像位数除以截取段数后求出的商与每段像素之后的像素值段数之积。由上可以看出,可以直接使用浏览器Canvas和Image解码通过上述保存方法保存的灰度图像,并可通过上述获取灰度图像的原始像素的方法,获取每个像素的原始灰度像素值,不会造成图像质量细节的损失。具体实施方式下面结合具体实施方式,详细介绍本专利技术提供的灰度图像的保存方法。在本实施例中,本专利技术提供的灰度图像的保存方法包括:将灰度图像保存为RGB或RGBA格式的PNG图像。在本实施例中,保存大于8位的灰度图像时,不使用16位灰度PNG格式,而使用RGB或者RGBA格式的PNG图像格式。以将灰度图像保存为RGBA格式的PNG图像格式为例,具体而言,把实际位数的灰度图像的像素值按一定的方式截取成几段,分别存储在R\G\B、A各个通道里。举例来说,对于一个16位的灰度图像,把该灰度图像的高8位的像素值存储在R(红色)或G(绿色)通道,把该灰度图像的低8位的像素值存在G或R通道里。理论上讲,选用RGBA的方式的PNG格式时,最高可以保存32位的灰度图像。在实际应用时,出于加密或者其他一些因素考虑时,可将原始灰度值拆成多段保存在不同的颜色通道里,并在一些不用的通道里加入一些值,由此可使常人无法直接识别出原始图像,实现原始图像的加密。举例来说,对于10位的灰度图像,可以把该灰度图像的高5位的像素值放入R通道,低5位的像素值放入B通道,这两个颜色通道的高3位和G通道的放入一些用于扰乱人眼的随机值,使肉眼无法直接识别出默认解码的图像。也可以将16位的灰度图像,以从高到低655的方式,即截取11-16的值放入R通道,6-10位放入G通道,1-5位放入B通道。本专利技术实施例并不限于上述分段方式,还可根据实际需要灵活设置图像分段方式。本专利技术还提供了一种灰度图像原始像素的获取方法,具体包括:基于上述的像素值截取方式,分别从R、G、B、A通道中取出对应于各个通道的像素值,经过计算即可得到原始像素值。具体而言,在需要原始DICOM图像的像素值参与计算的时候,针对以上述灰度图像保存方法保存的灰度图像,在需要该灰度图像的原始像素值时,把其PNG图像格式里的通道的像素值分别取出并向左移动一定位数,即乘以2N(N为每段像素的左移位数,等于灰度图像位数除以截取段数的商与每段像素之后的像素值段数之积,以将16位灰度图像截取成两段,每段各8位像素值为例,还原时,高位的像素值向左移动位数为16/2*1,因其后剩余一段低8位的像素值;而低位的像素值则无需向左移动,即向左移动16/2*0=0位,因为低位的像素值后没有剩余的像素值段;再以16位灰度图像被截取成四段为例,每段4位像素值,还原时,高位的像素值应向左移动16/4*3=12位,因其后剩余3段像素值;次高位的像素值应向左移动16/4*2=8位;接着次高位的像素值向左移动16/4*1=4位;同理低位的像素值向左移动16/4*0=0,因为低位像素值后不存在其他像素值段),最后将左移后的每段像素值相加即得到该灰度图像的原始像素值。例如,在还原被保存为RGB格式PNG图像的16位灰度图像时,将其被保存在R、G、B中某一通道内的高位8位像素值乘以28(向左移动8位),将其保存在另一通道内的低8位像素值乘以20(向左移动0位),最后将移位后的像素值相加变得到该灰度图像的原始像素值。在WEBGL里的处理一样,取出R或G通道的像素值并将其乘以2N(N为每段像素的左移位数),之后将左移后的每段像素值相加,最后再一起乘以2N,即得到了最原始的像素值。可以直接使用浏览器Canvas和Image解码由本专利技术方法保存的灰度图像,并通过简单的计算即可获取每个像素的原始灰度像素值,不会造成图像质量细节的损失。尽管本专利技术的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本专利技术的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本专利技术并不限于特定的细节。本文档来自技高网...

【技术保护点】
一种灰度图像的保存方法,其特征在于,包括:按一定的方式将所述灰度图像的像素值截取成几段,分别存储在R、G、B或R、G、B、A的各个通道里。

【技术特征摘要】
1.一种灰度图像的保存方法,其特征在于,包括:按一定的方式将所述灰度图像的像素值截取成几段,分别存储在R、G、B或R、G、B、A的各个通道里。2.根据权利要求1所述的灰度图像的保存方法,其特征在于,还包括:在一些不用的通道里加入随机值。3.一种获取如上述任一权利要求所述的方法保存的灰度图像的原始像素的方法,其特征在于,包括:基于所述方式,分别从所述RGB或RGBA格式的PNG图像的R、G、B或R、G、B、A的通道中取出对应于各个通道的像素值;将各个通道的像素值取出...

【专利技术属性】
技术研发人员:彭志勇
申请(专利权)人:彭志勇
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1