[发明专利]一种BMP图片修复方法及装置有效
申请号: | 202011126750.5 | 申请日: | 2020-10-20 |
公开(公告)号: | CN112215775B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 杜辉阳;唐军;沈长达;黄志炜 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06T5/00 | 分类号: | G06T5/00 |
代理公司: | 厦门市精诚新创知识产权代理有限公司 35218 | 代理人: | 蔡金塔 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 bmp 图片 修复 方法 装置 | ||
1.一种BMP图片修复方法,其特征在于,包括以下步骤:
S1.从参照BMP图片文件获取损坏BMP图片文件的信息,具体过程如下:
S11.从参照BMP图片判断是否存在调色板,若是,则进入S12;若否,则跳转至S15;
S12.扫描损坏BMP图片,判断调色板是否损坏,若是,则进入S13,否则跳转至S15;
S13.判断是否为单色位图,若是,则进入S14,否则修复失败,结束修复;
S14.设定单色位图调色板为黑白亮色;
S15.从参照BMP图片文件获取图片的行像素点和列像素点,并生成损坏BMP图片的头部信息;
S16.读取损坏BMP图片文件,准备进行文件修复,判断是否只是文件头部损坏,若是,跳转至S5;否则进入S2;
S2.自判断获取第一个参照行的数据,具体过程如下:
S21.从数据池D中连续获取一行像素所需字节数,记为L1,其中,数据池D={D1,D2,D3,…,Dn}为损坏BMP图片的RGB数据;
S22.该BMP的行数据是否有数据对齐填充0,若是,则进入S23,否则跳转至S26;
S23.判断L1末尾填充的0的字节数与对齐数据是否一致,若是,设定为损坏BMP图片文件的参考行RL,并跳转至S3,否则进入S24;
S24.丢弃一个字节,并使W=W+1,W是否大于T的A%,若是,修复失败,结束全部流程;否则将剩余数据放回数据池D中,进入S25,其中W为修复过程丢弃的无效字节数,T为损坏BMP图片文件所需的字数总数,50A100;
S25.数据池D的数据是否大于一行像素所需的数据量,若是,跳转至S21,否则修复失败,结束全部流程;
S26.从数据池D中再获取一行像素所需数据,记为L2;
S27.将L1与L2进逐个像素点对比,判断相似像素点是否超过90%,若是,设定为RL并将L1与L2放入集合L中,并跳转至S3,否则跳转至S24,其中,集合L={L1,L2,L3,…,Ln}为损坏BMP图片的已修复行数据集合;
S3.逐行修复,具体过程如下:
S31.数据池D的数据是否大于一行像素所需的数据量,若是,则进入S32,否则跳转到S4;
S32.从数据池D中连续获取一行像素所需字节数,记为Li;
S33.将Li与RL进行逐个像素点对比,判断相似像素点是否超过90%,若是,将Li放入集合L中,并将Li作为RL,跳转至S31,否则跳转至S34;
S34.丢弃一个字节,并使W=W+1,W是否大于T的A%,若是,修复失败,结束全部流程,否则将剩余数据放回数据池D中,并进入S35;
S35.当前无法与参照行RL相似的数据量是否大于3倍行像素所需数据量,若是,跳转至S2,重新选定参照行RL,否则跳转到S31;
S4.损失数据填充,具体过程如下:
S41.计算集合L中所有行的像素的数据总量,判断是否大于T的B%,若是,则进入S42;否则修复失败,结束全部流程;
S42.计算集合L中所有行的像素的数据总量与T的数据差,生成相应数据量的空白行并放入集合L中,进入S5;
S5.生成BMP图片文件,具体过程如下:
S51.调整BMP头部信息,使其与集合L相匹配;
S52.生成修复BMP图片文件。
2.如权利要求1所述的BMP图片修复方法,其特征在于,A=60。
3.如权利要求1所述的BMP图片修复方法,其特征在于,B=40。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011126750.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种发泡陶瓷加气混凝土及其制备方法
- 下一篇:一种泥石流桩群型拦挡结构及方法