您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
纯C语言怎么实现图像分割功能?
图像,位图,格式纯C语言怎么实现图像分割功能?
发布时间:2016-12-08加入收藏来源:互联网点击:
问题补充: 实现能把一张超大的jpg图像或其它格式图像,按一定比例分割成2张或更多张并保存。
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
很多图形处理库都是纯c写的,如果要自己从0实现,首先需要了解图像文件的存储结构,图像的编解码,可能还会因为不同的图像存储格式,需要学习解压缩算法,然后就可以愉快的纯c手撸代码了,
回答于 2019-09-11 08:43:50
跟C语言没多大关系。
调用windows API函数实现。
申请一个画布,读图像文件到画布。把图像点阵按横向或纵向比例分割区域,某个区域另存为BMP格式文件即可。
如果不是在windows下,直接操作BMP格式文件也可以。首先需要知道BMP格式,还要知道一个点占用几个字节,比如真彩色就是4个字节IRGB,调色板内容可以直接拷贝就行。
回答于 2019-09-11 08:43:50
看看 opencv 这个库
回答于 2019-09-11 08:43:50
这个必定有那么几步:
1. 图像数据解码到内存位图
2. 内存位图按宽高比例分割成几个小位图
3. 内存位图再编码为图像格式。
如果是超大的jpeg,并且一下子解码内存不足的话。可以按像素行解码直接切分到存储缓存。
如果是8*8 dct, 每次可读8行像素。
回答于 2019-09-11 08:43:50
你看看RGB BGR YUV NV12等图像格式的像素点的排列方式就知道怎么分割了。分割图像比较容易,难的是为压缩图像大小(占用空间)而又不太损失清晰度实现的编码和解码算法。jpeg是一种常用的图像编解码算法,这部分可以先用第三方(如:opencv)的SDK实现。如果不想压缩也可以存成bmp格式,甚至直接存成不带封装格式的数据流文件。
回答于 2019-09-11 08:43:50
不是所有的事情都有造轮子,当然你有兴趣看,jpeg文档也行,前提你要有c的基础
回答于 2019-09-11 08:43:50
过程很简单,1读取文件到内存,2结构解析,3切割处理,4保存文件。
其中最难的是结构解析,需要知道图片数据详细结构和压缩算法。
放弃吧,你实现不了的
回答于 2019-09-11 08:43:50
可用现有的函数库,也可以自己写,不过比较麻烦。
上一篇:花生米捂了怎么办?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |