在图像中附带数据的方法和解析图像中的附带数据的方法与流程

文档序号:12748836阅读:302来源:国知局
在图像中附带数据的方法和解析图像中的附带数据的方法与流程

本发明属于图像处理领域,尤其涉及一种在图像中附带数据的方法和解析图像中的附带数据的方法。



背景技术:

现有技术中,如果需要在图片中附带图片的描述信息等内容,常采用二维码技术实现。

以二维码实现时,需要在图像上叠加二维码,用户可扫描二维码来获取附带内容的链接,通过该链接获取到文字、图片、网址等附带内容。但是,在原图像上叠加二维码,改变了部分原图像,影响了原图像的显示效果。



技术实现要素:

鉴于此,本发明提供一种在图像中附带数据的方法和解析图像中的附带数据的方法,以在不影响原图像显示效果的前提下,添加附带数据。

第一方面,本发明提供一种在图像中附带数据的方法,包括:

确定是否有待添加的附带数据,如果有,确定所述图像中是否剩余未在预设位添加位数据的预设像素,所述附带数据以二进制表示;

如果剩余,从二进制表示的所述待添加的附带数据中获取位数据,以获取的位数据替换剩余的一个预设像素包含的预设位。

第二方面,本发明提供一种解析图像中的附带数据的方法,包括:

确定所述图像中是否剩余已在预设位添加位数据的预设像素;

如果剩余有,从剩余的一个预设像素所包含的预设位提取出位数据,将提 取的所述位数据依次添加到数据队列中,并由所述数据队列包含的位数据组成附带数据。

本发明的有益效果:将采用二进制表示的附带数据直接添加到像素包含的预设位中,可有效降低图像的失真度,增强原图像的显示效果。而且可以在图像中添加较大的数据量,隐蔽性好,具有较强的易用性和实用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是在图像中附带数据的一种实现流程图;

图2是解析图像中的附带数据的一种实现流程图;

图3是在图像中附带数据的方法的一种示意性的基础流程图;

图4是解析图像中的附带数据的方法的一种示意性的基础流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

本发明实施例中,附带数据采用二进制表示;附带数据包括是以下任一种类型的二进制数据,包括文字、图片、声音、网址、二维码等等用于表达信息的类型;可选地,附带数据还包括其包含的二进制数据的数据长度,采用四个字节记录该数据长度,通常,在表示附带数据的字节中选用前四个字节记录该数据长度。

本发明一实施例,图像中的每个像素采用RGB模型确定,即每个像素由R值、G值、B值确定,R值、G值、B值分别采用一个字节记录。

如果更改记录R值的字节中的最低位,R值几乎不变,改变后的像素(由改变的R值、未改变的G值、未改变的B值确定)相对于原像素(由未改变的R值、未改变的G值、未改变的B值确定)几乎没变;以此类推,如果更改记录G值的字节中的最低位,改变后的像素(由未改变的R值、改变的G值、未改变的B值确定)相对于原像素(由未改变的R值、未改变的G值、未改变的B值确定)几乎没变;以此类推,如果更改记录B值的字节中的最低位,改变后的像素(由未改变的R值、未改变的G值、改变的B值确定)相对于原像素(由未改变的R值、未改变的G值、未改变的B值确定)几乎没变。

以R值的字节为例,该字节从最高位到最低位排序,包括R7、R6、R5、R4、R3、R2、R1、R0;因此,R0为该字节的最低位,R1为该字节的次最低位,R2为该字节的第三最低位,R3为该字节的第四最低位。

本实施例中,预先确定记录R值的字节中可添加位数据的位,将确定的位作为预设位;例如:将记录R值的字节中的最低位作为一个预设位,如果记录R值的字节中第三最低位和第四最低位均为零,将记录R值的字节中的次最低位也作为一个预设位。

以此类推,可以在记录R值的字节、记录G值的字节、记录B值的字节中,任一字节中确定预设位,或者两个字节中确定预设位,或者同时在三个字节中确定预设位;优选地,仅在记录R值的字节或者记录R值的字节或者记录R值的字节中确定预设位。

本实施例以仅在记录R值的字节中确定了预设位为例,提供在图像中附带数据的一种实现流程,参见图1。

步骤S101,打开图像。

打开图像,具体是指:处理器加载图像,并将图像设置成可编辑状态;这样,至少可以更改预设位的值。可选地,处理器打开图像后,图像中每个像素, 表示该像素中R值、G值、B值均可更改;以更改R值的方式为例,更改记录R值的字节中的预设位。

步骤S102,确定是否还有待添加的附带数据,如果没有,执行步骤S103,如果有,执行步骤S104。附带数据包括期望添加到图像中的二进制数据,如上所述,附带数据包括文字、图片、声音、网址、二维码等等二进制表达的数据,还包括二进制表示的该附带数据的数据长度,可见,附带数据由位数据组成。

在图像中的预设位添加附带数据包含的位数据的过程中,附带数据可分为两类,一类是已经添入图像中的预设位的位数据,另一类是还未添入图像中的预设位的位数据,本实施例期望继续将另一类位数据继续添加到图像的剩余预设位中,因此,还未添入图像中的预设位的位数据属于所述待添加的附带数据;具体实现在图像中的预设位添加附带数据的过程时,根据该附带数据的数据长度判断是否还有待添加的附带数据,如果已经添入图像中的预设位的位数据的总和未达到该数据长度,确定还有待添加的附带数据,如果已经添入图像中的预设位的位数据的总和达到该数据长度,确定没有待添加的附带数据。

步骤S103,保存图像;可选地,保存图像后,关闭图像。

步骤S104,确定所述图像中是否剩余未在预设位添加位数据的预设像素,如果剩余有,提取一个剩余的预设像素,执行步骤S105。举例说明,首先在图像中筛选可用于添加位数据的像素,将筛选出的像素作为预设像素,筛选出的预设像素中可用于添加位数据的位属于预设位;若从图像中筛选的预设像素是有限的,计算筛选出的预设像素的个数,将计算的个数作为个数阈值;因在预设像素中可确定的预设位也是有限的,在图像中预设像素的预设位添加附带数据包含的位数据的过程中,每在一个预设像素中每个预设位添加位数据,就会减少一个可用于添加位数据的预设像素,如果已添加位数据的预设像素的个数未达到个数阈值,则确定图像中剩余有可在预设位添加位数据的预设像素,如果已添加位数据的预设像素的个数达到个数阈值,则确定图像中未剩余有可在预设位添加位数据的预设像素。

步骤S105,从步骤S102确定的所述待添加的附带数据中提取一个位数据,所述位数据是指一个二进制值,将提取的一个位数据替换字节(记录步骤S104提取的一个预设像素的R值的字节)中的最低位,执行步骤S106。

步骤S106,判断字节(记录步骤S104提取的一个预设像素的R值的字节)中第三最低位和第四最低位是否均为零,如果是,执行步骤S107,如果否,返回步骤S102。

步骤S107,确定是否还有待添加的附带数据,如果有,从所述待添加的附带数据中提取一个位数据,将提取的一个位数据替换字节(记录步骤S104提取的一个预设像素的R值的字节)中的次最低位,返回步骤S102;如果没有,保存图像,可选地,保存图像后,关闭图像。

本实施例基于仅在记录R值的字节中确定了预设位为例描述的在图像中附带数据的一种实现流程,合理得知,仅在记录G值的字节中确定了预设位为例描述的在图像中附带数据的一种实现流程,以及合理得知,仅在记录B值的字节中确定了预设位为例描述的在图像中附带数据的一种实现流程。

本实施例以仅在记录R值的字节中确定了预设位为例,提供解析图像中的附带数据的一种实现流程,参见图2。

步骤S201,打开图像。对打开图像的相关描述,参见上面对步骤S101的相关描述。

步骤S202,确定图像中是否剩余已在预设位添加位数据的预设像素,如果没有,执行步骤S203,如果剩余有,执行步骤S204。作为确定图像中是否剩余已在预设位添加位数据的预设像素的一种举例,在预设像素添加位数据的过程中已记录哪些预设像素中的哪些预设位添加有位数据,从而在从已添加位数据的预设像素中提取位数据时步骤S202可根据记录确定还未提取位数据的预设像素;作为确定图像中是否剩余已在预设位添加位数据的预设像素的又一种举例,先从预设像素中提取记录数据长度的位数据,如根据上述的记录确定包含表示数据长度的位数据的预设像素,先从确定的预设像素提取位数据,再从其 它载有位数据的预设像素提取位数据的过程中,可根据该数据长度确定是否剩余已在预设位添加位数据的预设像素,如果已提取的位数据的个数未达到预设长度,则确定还剩余已在预设位添加位数据的预设像素,如果已提取的位数据的个数达到预设长度,则确定没有剩余已在预设位添加位数据的预设像素。

步骤S203,保存图像;可选地,保存图像后,关闭图像。

步骤S204,从图像包含的剩余预设像素中确定一个预设像素,从字节(记录确定的预设像素的R值的字节)中的最低位提取位数据,将提取的位数据依次添加到数据队列中,执行步骤205。对从图像包含的剩余预设像素中确定一个预设像素的确定方式做如下举例说明,图像包含的剩余预设像素中每个预设像素都在最低位载有位数据,可以从剩余预设像素中任意选择一个预设像素,当然,还可根据预设算法从剩余预设像素中选择一个预设像素。

步骤205,判断字节(记录确定的预设像素的R值的字节)中第三最低位和第四最低位是否均为零,如果是,执行步骤S206,如果否,执行步骤S208。

步骤S206,判断所述数据队列是否达到数据长度,判定为否,则执行步骤S207,判定为是,保存图像,可选地,还关闭图像。对判断所述数据队列是否达到数据长度做一举例说明,数据长度是指附带数据包含的位数据的个数,而数据队列包含的位数据的个数是可以计算的,从而可以根据数据队列中位数据的个数是否达到数据长度,若数据队列中位数据的个数未达到数据长度,判定为否,若数据队列中位数据的个数达到数据长度,判定为是。

步骤S207,从字节(记录确定的预设像素的R值的字节)中的次最低位提取一个位数据,将提取的位数据依次添加到数据队列中,执行步骤S208。

步骤S208,判断所述数据队列是否达到数据长度,判定为否,则返回步骤S202,判定为是,保存图像,不再返回步骤S202,可选地,还关闭图像。步骤S208中判断所述数据队列是否达到数据长度的实现方式,与步骤S206中判断所述数据队列是否达到数据长度相同,在此不再赘述。

通常,在表示附带数据的字节中选用前四个字节记录数据长度,因此,本 实施例也是先提取记录数据长度的位数据,根据先提取的四个字节的位数据确定:期望从图像提取的附带数据的长度。

本实施例基于仅在记录R值的字节中确定了预设位为例描述的解析图像中的附带数据的一种实现流程,合理得知,仅在记录G值的字节中确定了预设位为例描述的解析图像中的附带数据的一种实现流程,以及合理得知,仅在记录B值的字节中确定了预设位为例描述的解析图像中的附带数据的一种实现流程。

另外,应理解,图1以及图2对应实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本发明一实施例,基于上述在图像中附带数据的相关描述,做一定扩展,得到在图像中附带数据的方法的基本流程,参见图3,但图3仅示出了与本发明实施例相关的部分。

如图3所示,所述在图像中附带数据的方法包括步骤A101和步骤A102。

步骤A101,确定是否有待添加的附带数据,如果有,确定所述图像中是否剩余未在预设位添加位数据的预设像素;其中,位数据是指二进制表示的附带数据中的一个二进制值。

步骤A102,如果剩余,从二进制表示的所述待添加的附带数据中获取位数据,以获取的位数据替换剩余的一个预设像素包含的预设位,返回步骤A101。

本实施例中,图像中的每个像素,可以是采用RGB模型表示的,也可以是采用CMYK模型表示的。

本实施例确定预设位的原则是,表示图像中像素的所有二进制位中,如果修改该所有二进制位中的某个二进制位的值,该像素变化不大,通常肉眼无法区分出该像素变化,即可将该所有二进制位中的该个二进制位作为一个预设位。

例如,如果图像中的像素采用RGB模型表示,修改记录该像素的R值的字 节中的最低位,R值几乎不变,可以将记录该像素的R值的字节中的最低位作为一个预设位,以此类推,可以将记录该像素的G值的字节中的最低位作为一个预设位,可以将记录该像素的B值的字节中的最低位作为一个预设位。

例如,如果图像中的像素采用CMYK模型表示,修改记录该像素的C值的字节中的最低位,C值几乎不变,可以将记录该像素的C值的字节中的最低位作为一个预设位,以此类推,可以将记录该像素的M值的字节中的最低位作为一个预设位,可以将记录该像素的Y值的字节中的最低位作为一个预设位,可以将记录该像素的K值的字节中的最低位作为一个预设位。

本实施例中,如果还有待添加的附带数据,同时图像中还有未在预设位添加位数据的预设像素剩余,则将附带数据包含的位数据依次更新剩余的预设像素所包含的预设位,直到没有待添加的附带数据或者没有未在预设位添加位数据的预设像素剩余;其中,对于将附带数据包含的位数据依次更新剩余的预设像素所包含的预设位,更新方式是指:以位数据替换预设像素所包含的预设位上记录的值,具体实施时,将位数据存储至预设像素所包含的预设位上。

本实施例可将附带数据采用二进制表示后,将附带数据添加到像素包含的预设位中,几乎没有影响图像的失真度,因为人眼对相邻数值对应的颜色变化差别很难觉察到,例如,对于颜色100和颜色101的颜色差别,肉眼基本没法区别;另外,可在图像中添加的附带数据的数据量较大,隐蔽性好。

本实施例中可选地,所述图像中的像素采用RGB表示,所述预设像素的R值由一个字节表示,所述预设像素的G值由一个字节表示,所述预设像素的B值由一个字节表示;

所述预设位为一个或多个,所述预设位是指在以下任一字节中确定的位,包括:表示所述预设像素的R值的字节、表示所述预设像素的G值的字节、表示所述预设像素的B值的字节。

具体地,以表示所述预设像素的R值的字节为例,在上述确定预设位的原则下,可选择该字节中最低位、次最低位、第三最低位中任一或组合分别作为 预设位。可以在字节中确定一个或多个位作为预设位,这样确定的预设位不会印象图像的整体观看效果。

本实施例中优选地,所述以获取的位数据替换剩余的一个预设像素包含的预设位包括;

步骤A1021,以一个所述获取的位数据替换所述剩余的一个预设像素中的第一位;其中,所述第一位属于所述预设位,所述第一位为表示所述预设像素的R值的字节中的最低位,或者所述第一位为表示所述预设像素的G值的字节中的最低位,或者所述第一位为表示所述预设像素的B值的字节中的最低位。

具体地,以在记录R值的字节中的第一位作为一个预设位为例,如果还有待添加的附带数据,同时图像中还有未在该预设位添加位数据的预设像素剩余,则可将附带数据包含的位数据依次替换剩余的预设像素所包含的第一位(记录R值的字节中的第一位)上的值,替换时,是一个位数据替换一个第一位上的值。以此类推,还可以将附带数据包含的位数据依次替换剩余的预设像素所包含的、记录G值的字节中的第一位;还可以将附带数据包含的位数据依次替换剩余的预设像素所包含的、记录B值的字节中的第一位。

本实施例中优选地,所述以获取的位数据替换剩余的一个预设像素包含的预设位还包括:

步骤A1022,如果所述第一位所属的字节中第三最低位和第四最低位均为零,再次确定是否有待添加的附带数据;

步骤A1023,如果有,以再次确定的附带数据包含的一个位数据替换所述剩余的一个预设像素中的第二位;

其中,所述第二位属于所述预设位,所述第二位为所述第一位所属的字节中的次最低位,或者所述第二位为所述第一位所属的字节中的次最低位,或者所述第二位为所述第一位所属的字节中的次最低位。

具体地,以在记录R值的字节中的第二位作为一个预设位为例,如果还有待添加的附带数据,同时图像中还有未在该预设位添加位数据的预设像素剩余, 则可将附带数据包含的位数据依次替换剩余的预设像素所包含的第二位(记录R值的字节中的第二位)的值,替换时,是一个位数据替换一个第二位上的值。以此类推,还可以将附带数据包含的位数据依次替换剩余的预设像素所包含的、记录G值的字节中的第二位;还可以将附带数据包含的位数据依次替换剩余的预设像素所包含的、记录B值的字节中的第二位。

需说明的是,本实施例对步骤A1021和步骤A1022的执行顺序不做限定;优选地,对于同一字节而言,依次执行步骤A1021和步骤A1022。

本实施例可选地,所述附带数据包括:二进制数据、所述二进制数据的数据长度。具体参见上述。

本发明一实施例,基于上述对解析图像中的附带数据的相关描述,做一定扩展,得到解析图像中的附带数据的方法的基本流程,参见图3,但图3仅示出了与本发明实施例相关的部分。

如图3所示,所述解析图像中的附带数据的方法包括步骤A201和步骤A202。

步骤A201,确定所述图像中是否剩余已在预设位添加位数据的预设像素;其中,位数据是指二进制表示的附带数据中的一个二进制值。

步骤A202,如果剩余有,从剩余的一个预设像素所包含的预设位提取出位数据,将提取的位数据依次添加到数据队列中,由所述数据队列包含的位数据组成附带数据,返回步骤A201。

本实施例确定预设位的原则参加上一实施例提供的在图像中附带数据的方法中对确定预设位的原则的相应描述。

本实施例中,处理器期望从图像中提取出附带数据时,会生成一个数据队列,该数据队列用于存储依次从图像中的预设位提取出的位数据,待完成从图像中的预设位提取位数据之后,由所述数据队列包含的位数据组成附带数据。其中,实现从图像的预设位提取位数据的方式是:循环执行步骤A201和步骤 A202,直到完成从图像中的预设位提取位数据。

本实施例中可选地,所述图像中的像素采用RGB表示,所述预设像素的R值由一个字节表示,所述预设像素的G值由一个字节表示,所述预设像素的B值由一个字节表示;

所述预设位为一个或多个,所述预设位是指在以下任一字节中确定的位,包括:表示所述预设像素的R值的字节、表示所述预设像素的G值的字节、表示所述预设像素的B值的字节。

具体地,以表示所述预设像素的R值的字节为例,在上述确定预设位的原则下,可选择该字节中最低位、次最低位、第三最低位中任一或组合分别作为预设位。

本实施例中优选地,所述从剩余的一个预设像素所包含的预设位提取出位数据包括:

步骤A2021,从所述剩余的一个预设像素中的第一位提取出一个所述位数据;其中,所述第一位属于所述预设位,所述第一位为表示所述预设像素的R值的字节中的最低位,或者所述第一位为表示所述预设像素的G值的字节中的最低位,或者所述第一位为表示所述预设像素的B值的字节中的最低位。

具体地,因未从所述剩余的一个预设像素提取位数据,本实施例从图像中所述剩余的一个预设像素中的第一位提取位数据,并将提取的位数据依次添加到数据队列中。

本实施例中优选地,所述从剩余的一个预设像素所包含的预设位提取出位数据还包括:

步骤A2022,如果所述第一位所属的字节中第三最低位和第四最低位均为零,从所述剩余的一个预设像素中的第二位提取出一个所述位数据;其中,所述第二位属于所述预设位,所述第二位为所述第一位所属的字节中的次最低位,或者所述第二位为所述第一位所属的字节中的次最低位,或者所述第二位为所述第一位所属的字节中的次最低位。

具体地,因未从所述剩余的一个预设像素提取位数据,如果所述剩余的一个预设像素存储有所述附带数据中的一个位数据,本实施例从图像中所述剩余的一个预设像素中的第二位提取位数据,并将提取的位数据依次添加到数据队列中。

需说明的是,本实施例对步骤A2021和步骤A2022的执行顺序不做限定;优选地,对于同一字节而言,依次执行步骤A2021和步骤A2022。

本实施例可选地,步骤A202包括:

步骤A2023,判断所述数据队列是否达到数据长度,判定为否,则返回步骤A201,判定为是,则不再返回步骤A201,所述数据长度根据所述数据队列中的位数据确定。

具体在步骤A202中,每次将提取的一个位数据依次添加到数据队列中之后,都会执行步骤A2023判断所述数据队列是否达到数据长度;如果判定为所述数据队列达到数据长度,保存图像,可选地,关闭图像;如果判定为所述数据队列未达到数据长度,返回步骤A201。

需要说明的是,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专 利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1