《OpenCV支持的图片格式》

本文介绍了OpenCV支持的各种图像格式,包括BMP、JPEG、PNG等,并详细讲解了每种格式的特点。

OpenCV目前支持的图像格式包括:

  • Windows位图文件 - BMP, DIB;
  • JPEG文件 - JPEG, JPG, JPE;
  • 便携式网络图片 - PNG;
  • 便携式图像格式 - PBM,PGM,PPM;
  • Sun rasters - SR,RAS;
  • TIFF文件 - TIFF,TIF;
  • OpenEXR HDR 图片 - EXR;
  • JPEG 2000 图片- jp2。


可以用cvSaveImage函数或者imwrite()函数来实现不同图像格式之间的转换,保存时的后缀名就是对应的图片格式。




1、BMP


BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。




2、JPEG文件- JPEG, JPG, JPE


在电脑中,JPEG(发音为jay-peg, IPA:[ˈdʒeɪpɛg])是一种针对相片图像而广泛使用的一种有损压缩标准方法。这个名称代表Joint Photographic Experts Group(联合图像专家小组)。此团队创立于西元1986年,1992年发布了JPEG的标准而在1994年获得了ISO 10918-1的认定。JPEG与视频音频压缩标准的MPEG(Moving Picture Experts Group)很容易混淆,但两者是不同的组织及标准。JPEG本身只有描述如何将一个图像转换为字节的数据流(streaming),但并没有说明这些字节如何在任何特定的存储媒体上被封存起来。JPEG的压缩方式通常是破坏性数据压缩(lossy compression),意即在压缩过程中图像的质量会遭受到可见的破坏,有一种以JPEG为基础的标准Lossless JPEG是采用无损的压缩方式,但Lossless JPEG并没有受到广泛的支持。使用JPEG格式压缩的图片文件一般也被称为JPEG Files,最普遍被使用的 扩展名格式为.jpg,其他常用的 扩展名还包括.jpeg、.jpe、.jfif以及.jif。JPEG格式的数据也能被嵌进其他类型的文件格式中,像是 TIFF类型的文件格式。




3、便携式网络图片 - PNG

便携式网络图形 (Portable Network Graphics)是一种 无损压缩 的位图片形格式 。其设计目的是试图替代 GIF TIFF 文件格式,同时增加一些 GIF文件格式 所不具备的特性。PNG的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”,也有一个非官方解释“PNG's Not GIF”。PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序、 网页 或S60程序中,原因是它 压缩比 高,生成文件体积小。


特点:

  • 体积小 网络通讯中因受带宽制约,在保证图片清晰、逼真的前提下,网页中不可能大范围的使用文件较大的bmp格式文件。
  • 无损压缩 PNG文件采用LZ77算法的派生算法进行压缩,其结果是获得高的压缩比,不损失数据。它利用特殊的编码方法标记重复出现的数据,因而对图像的颜色没有影响,也不可能产生颜色的损失,这样就可以重复保存而不降低图像质量。
  • 支持透明效果 PNG可以为原图像定义256个透明层次,使得彩色图像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。这种功能是GIF和JPEG没有的。
  • PNG同时还支持真彩和灰度级图像的Alpha通道透明度。

<think>我们正在回答用户的问题:“我想了解opencv支持图片格式 请问opencv支持图片格式有哪些” 根据引用[1]和引用[4](两者内容一致),OpenCV支持以下文件格式: - Windows位图文件:包括BMP和DIB格式 - JPEG文件:支持JPEG、JPG和JPE三种扩展名 - 便携式网络图片:即PNG格式 - 便携式图像格式:包括PBM、PGM和PPM三种格式 - Sun rasters:支持SR和RAS格式 - TIFF文件:支持TIFF和TIF两种格式 - OpenEXR HDR图片:即EXR格式 - JPEG 2000图片:即jp2格式 引用[3]提到了一些常用格式,包括BMP、JPEG、PNG、WebP、TIFF。注意,这里提到了WebP格式,但引用[1]和[4]没有提到WebP。实际上,OpenCV是否支持WebP取决于编译时的选项,因为WebP需要额外的库。不过,在标准安装中,如果编译了WebP支持,那么也可以读写WebP格式。但是,根据用户提供的引用,我们主要依据引用[1]和[4](因为它们是直接关于OpenCV支持图片格式),所以先列出引用中明确提到的格式。 另外,引用[2]主要解释了BGR三通道格式,并没有提到新的文件格式。 因此,我们回答时以引用[1]和[4]为主,同时可以补充引用[3]中提到的WebP(但需要注明可能需要额外支持)。 总结OpenCV支持图片格式: 1. BMP, DIB (Windows位图) 2. JPEG, JPG, JPE 3. PNG 4. PBM, PGM, PPM (便携式图像格式) 5. SR, RAS (Sun rasters) 6. TIFF, TIF 7. EXR (OpenEXR HDR图片) 8. jp2 (JPEG 2000) 另外,根据引用[3]补充: 9. WebP(需要OpenCV编译时支持) 注意:引用[5]是关于OpenCV函数的,与图片格式无关,所以不采用。 回答结构: 1. 直接列出OpenCV支持图片格式(核心引用[1]和[4]的内容)。 2. 补充说明WebP格式(根据引用[3])以及其他可能的格式(如用户可能关心的其他格式,如GIF?注意:OpenCV支持读写GIF动画,但可以读取GIF的第一帧,不过没有在引用中提及,所以不列)。 注意:用户可能还会关心是否支持其他格式,但根据引用,我们只列出有依据的。 最终回答: 根据引用内容,OpenCV支持多种图片格式,包括但不限于: - Windows位图:BMP, DIB [^1][^4] - JPEGJPEG, JPG, JPE [^1][^4] - 便携式网络图片:PNG [^1][^4] - 便携式图像格式:PBM, PGM, PPM [^1][^4] - Sun rasters:SR, RAS [^1][^4] - TIFF:TIFF, TIF [^1][^4] - OpenEXR HDR:EXR [^1][^4] - JPEG 2000:jp2 [^1][^4] - WebP(需要编译时支持)[^3] 注意:不同版本的OpenCV以及编译选项可能会影响对某些格式的支持(如WebP、JPEG2000等)。在实际使用时,可以通过函数`imread`和`imwrite`来读写这些格式。 相关问题: 1. 如何检查当前OpenCV版本支持哪些图片格式? 2. 在OpenCV中读取不同格式图片时有哪些注意事项? 3. 如何判断OpenCV是否支持WebP格式的读写? </think>### OpenCV支持图片格式详解 根据OpenCV官方文档和相关技术资料[^1][^3][^4],OpenCV支持以下主流图片格式: #### 核心位图格式 1. **Windows位图文件**: - BMP(标准位图) - DIB(设备无关位图) *适用于Windows平台的原始图像存储* 2. **JPEG系列**: - JPEG/JPG/JPE(有损压缩格式) - JPEG 2000(jp2,改进的压缩算法)[^1][^4] *支持质量参数调节,广泛用于摄影图像* 3. **便携式网络图形**: - PNG(无损压缩,支持透明度通道)[^3] *适用于需要透明背景的网页图像* #### 专业图像格式 4. **便携式图像格式**: - PBM(便携式位图) - PGM(便携式灰度图) - PPM(便携式像素图)[^1][^4] *Unix/Linux系统常用格式* 5. **高动态范围图像**: - OpenEXR(EXR格式)[^1][^4] *专业影视制作领域标准* 6. **印刷出版格式**: - TIFF/TIF(支持多层/多页存储)[^3] *印刷行业和文档扫描常用* 7. **Sun工作站格式**: - SR/RAS(Sun Raster图像)[^1] *历史遗留系统支持* #### 补充说明 - **通道模型**:多数格式支持1-4通道(如BGR三通道模型[^2]) - **WebP支持**:需额外编译选项(引用[3]提及但未在核心列表) - **格式限制**:不支持动态GIF和矢量格式(如SVG) > 可通过`cv::imread()`/`cv::imwrite()`函数读写上述格式,具体支持依赖编译配置[^1][^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值