
jpeg
文章平均质量分 79
10km
这个作者很懒,什么都没留下…
展开
-
cmake:使用find_package查找libjpeg的静态库
我们知道简单的使用命令find_package可以查找指定的package.对于经常会用到的 jpeg库turbojpeg,可以用find_package(JPEG REQUIRED)来查找。find_package(JPEG REQUIRED)if(JPEG_FOUND) message(STATUS "JPEG_INCLUDE_DIR=${JPEG_INCLUDE_DIR}") me...原创 2018-10-03 15:35:28 · 5576 阅读 · 1 评论 -
CImg:一行代码实现RGB转YUV
如果想从YUV图像中分别获取,Y,U,V分量的数据该怎么办呢?设计的目标是一个方便简单的图像处理工具,性能并不是追求的目标,上面的色彩空间转换虽然简单,但在代码运行效率上并不可取,提供了丰富的色彩空间转换功能,允许在不同的颜色空间()之间的转换,使用非常简单以下是将一个。如果你想实现其他色彩空间的转稍稍看一下。上面的代码如果简写,只要一行就完成.所以需要考虑代码性能的应用场景,使用。对象返回Y分量(灰度图像)数据。原创 2018-10-02 15:28:40 · 1044 阅读 · 0 评论 -
CImg:插件(plugin)使用说明塈实现JPEG图像内存编码/解码
如果你想对图像进行简单处理,你一般会想到用什么?可能多数人想到的是OpenCV。对,OpenCV是个非常强大的图像视觉工具库,用途非常广泛。简单的图像处理用它肯定是可以的。但OpenCV实在太庞大了,用起来有时反而不方便,就好比你现在肚子饿了只想简单吃个午饭,你是选择街边的饭馆买一份快餐15分钟解决问题,还是打电话给高级西餐厅订个位子要排队等到下周一才能吃上?原创 2018-10-02 14:45:53 · 1925 阅读 · 1 评论 -
c/c++:判断数据(stream)是否为JPEG图像快速而准确的方法
《JPEG文件格式 JFIF & Exif》 《JPEG文件格式介绍》#include <stdio.h>#include <stdlib.h>#include <stdint.h&原创 2018-08-31 23:47:38 · 2072 阅读 · 1 评论 -
minigui/mgncs:利用LoadBitmapFromMem函数对摄像头MJPEG格式图像解码
可能与虚拟机有关,在virtualbox虚拟机环境下,即使VIDIOC_S_FMT设置了pixelformat为RGB或YUV,通过v4l2视频驱动框架读取摄像头帧图像的格式总是MJPG。 MJPG是什么格式?以下说明摘自百度百科: MJPEG全名为 “Motion Joint Photographic Experts Group”,是一种视频编码格式,中文名称翻译为“技术即运动静止图像...原创 2018-08-29 00:35:09 · 1894 阅读 · 2 评论 -
libjpeg-turbo 命令行编译脚本(MinGW/MSVC/linux)
libjpeg-turbo用CMAKE命令行编译还是很方便的 编译libjpeg-turbo需要NASM支持,编译前请下载并正确安装。mkdir buildcd build# 生成Makefilecmake -G "MinGW Makefiles" \ -DCMAKE_BUILD_TYPE=RELEASE \ -DCMAKE_DEBUG_POSTFIX=_d \ ...原创 2018-04-26 16:34:15 · 1889 阅读 · 1 评论 -
cmake:用于查找libjpeg-turbo的module FindTurboJPEG.cmake
libjpeg-turbo的安装包没有提供用于CONFIG模式查找包(find_package)的cmake脚本,如果cmake脚本中要查找libjpeg-turbo库,就得自己写脚本。 于是我参照cmake 查找标准libjpeg库 的Module FindJPEG源码的写法实现了libjpeg-turbo的Module FindTurboJPEG.cmake。 为了更方便引用libjpeg...原创 2018-04-25 22:23:20 · 2446 阅读 · 1 评论 -
cmake设置msvc的运行库(runtime library)塈指定openjpeg使用静态库
cmake这个跨平台的make工具功能已经很强大了,但它也有不足的地方,就是本文的标题。 在用cmake生成NMake的Makefile或visual studio的.sln时,如何指定运行库(/MD /MT)? 原本,我以为可以在CMAKE的手册中找到一个command或PROPERTY或VARIABLE,简单的调用或设置一下就可以了,很遗憾,把整个CMAKE manual翻了几遍也没找到,没原创 2016-06-22 17:04:11 · 7824 阅读 · 0 评论 -
nmake(vs2015)命令行编译libjpeg-turbo(x86/amd64)
很久之前写过一篇博客《mingw(gcc)编译libjpeg-turbo》,介绍了windows下用mingw编译libjpeg-turbo的过程。 当时对cmake的使用并不非常熟悉,对msvc的命令行编译也不在行,所以还不会用msvc编译libjpeg_turbo源码,所以只能从暂时libjpeg_turbo的官网(http://libjpeg-turbo.virtualgl.org/)下载...原创 2016-06-22 11:50:12 · 7041 阅读 · 3 评论 -
openjpeg:jpeg2000(j2k)图像内存解压缩(解码)
我的上一篇博客《openjpeg:jpeg2000(j2k)图像内存压缩编码》详细讲述了调用openjpeg实现jpeg2000(j2k)图像的内存压缩过程。本文讲述如何调用openjpeg来将jpeg2000格式的内存图像数据解码。因为有了《jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)》实现的内存流接口,解压缩过程相对就比较简单了...原创 2016-02-04 19:57:40 · 16360 阅读 · 35 评论 -
openjpeg:jpeg2000(j2k)图像内存压缩编码
上一篇博文实现了《jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)》中实现了openjpeg的memory stream接口,本文介绍如何用memory stream实现jpeg2000图像的内存压缩。create opj_image_topenjpeg在处理图像是有定义自己的图像描述结构opj_image_t,如果要对内存的中的图像进行压缩原创 2016-01-29 14:56:31 · 8920 阅读 · 6 评论 -
jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)
前阵子用libjpeg-turbo实现jpeg图像在内存中编码与解码 参见《libjpeg:实现jpeg内存解压缩塈转换色彩空间/压缩分辨率》,《libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置》觉得libjpeg接口用起来挺麻烦的。。。但libjpeg 80以上的版本好歹提供了jpeg_mem_dest/jpeg_mem_src API让我可以直接将实现原创 2016-01-29 14:14:11 · 7411 阅读 · 14 评论 -
openjpeg:解决静态链接时未定义引用错误:undefined reference to `__imp_opj_xxxxxxx‘
解决办法加入OPJ_STATIC宏定义。 1. 在#include "openjpeg-2.1/openjpeg.h"之前中加入OPJ_STATIC定义,如下#ifndef OPJ_STATIC#define OPJ_STATIC#endif#include "openjpeg-2.1/openjpeg.h"2.如果你用cmake编译项目代码可以在CMakeLists.txt中加入OPJ_S原创 2016-01-28 11:09:12 · 23223 阅读 · 5 评论 -
VS2015编译openjpeg(32/64位)
上一篇博客《mingw(gcc)编译openjpeg》讲了如何用gcc编译openjpeg,但我目前只会在64位平台下生成64位目标代码,如果需要在64位平台生成32位目标代码怎么办?我还没有找到不修改CMakeList.txt的情况下在Windows 64位平台用gcc生成32位代码的办法(待研究),因为我的调试环境还是喜欢用VS2015所以我决定还是用VS2015再把openjpeg编译一遍,而原创 2016-01-25 16:58:27 · 7929 阅读 · 3 评论 -
mingw(gcc)编译openjpeg
openjpeg是C语言实现的开源jpeg2000图像格式的编码/解码器,github上有编译好的linux/windows二进制文件,目前最新的版本是2.1(https://github.com/uclouvain/openjpeg/releases/tag/version.2.1) 但官方提供的二进制文件只提供了dll,如果想要将代码静态编译到项目中需要自己下载源代码编译。下载原代码下载:ht原创 2016-01-25 16:00:54 · 4791 阅读 · 0 评论 -
libjpeg:读取jpeg头获取图像基本信息(jpeg_read_header)
libjpeg中的jpeg_read_header函数用于读取jpeg数据头部的基本信息,以下为jpeg_read_header的定义。/* Decompression startup: read start of JPEG datastream to see what's there */EXTERN(int) jpeg_read_header (j_decompress_ptr cinfo,原创 2016-01-23 17:40:26 · 9819 阅读 · 1 评论 -
libjpeg:实现jpeg内存解压缩塈转换色彩空间/压缩分辨率
前一篇博客《libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置》实现了jpeg图像的内存压缩,本文来讨论jpeg图像内存解压缩的过程先贴出完整代码,再做讲解 jpeg_mem.h/* 图像矩阵基本参数 */typedef struct _image_matrix_pram{ int32_t width;原创 2016-01-23 16:31:41 · 5963 阅读 · 0 评论 -
libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置
libjpeg-turbo是与libjpeg接口兼容的一个jpeg编/解码库,其主要的特点就是利用SIMD指令(如X86架构的MMX/SSE/SSE2,ARM架构的NEON)来加速jpeg图像的编/解码,相比被广泛使用的libjpeg,编码和解码性能提高2~4倍左右。 本文介绍的内容适用于libjpeg-turbo和libjpeg(80以上版本) 关于如何用gcc对libjpeg编译,请参考我之原创 2016-01-20 10:51:27 · 5853 阅读 · 0 评论 -
VS2015下解决:error LNK2019: 无法解析的外部符号 __iob_func
在使用VS2015下使用libjpeg-turbo静态库,编译时报错了: error LNK2019: 无法解析的外部符号 __iob_func,该符号在函数 output_message 中被引用根据关键字在网上找到一些文章描述了类似的错误,大都是找不到外部符号__iob,与我的情况不同,但是原理是一样的, 其实__iob_func和__iob都是用来定义stdin,stdout,stde原创 2016-01-16 17:15:40 · 50337 阅读 · 18 评论 -
mingw(gcc)编译libjpeg-turbo
最近的工作需要读写jpeg图像,网上找了半天,发现libjpeg-turbo是个不错的选择。 ibjpeg-turbo是与libjpeg接口兼容的一个jpeg编/解码库,其主要的特点就是利用SIMD指令(如X86架构的MMX/SSE/SSE2,ARM架构的NEON)来加速jpeg图像的编/解码,相比被广泛使用libjpeg,编码和解码性能提高2~4倍左右。下面是其官网的说明: libjpeg-原创 2016-01-15 17:57:16 · 4126 阅读 · 0 评论