首页 > 其他分享 >为OpenCV1.0添加cvJpeg2Ipl函数

为OpenCV1.0添加cvJpeg2Ipl函数

时间:2024-08-17 13:22:45浏览次数:11  
标签:bytes cinfo OpenCV1.0 添加 cvJpeg2Ipl input 源码

由于在OpenCV1.0中只提供了从硬盘打开JPEG图像进行解码,有些时候如果JPEG的图像数据是从内存载入的,就无法使用这些曾经很方便高效的接口。为了实现这个目的,我们通过修改OpenCV1.0源码,在其源码包中添加函数,实现把jpeg数据从内存复制到IplImage结构中,这为我们进行相应处理会方便很多,实现过程如下:

修改源码包目录下的otherlibs/highgui目录下的如下源码文件:

1、highgui.h,在其中添加函数的声明:

CVAPI(IplImage*) cvJpeg2Ipl(char *jpegData, int jpegSize);

2、grfmt_jpeg.cpp,在其中添加函数的实现:

1)、添加头文件:

#include "jpeglib.h"

2)、添加源代码:

void mem_init_source(j_decompress_ptr cinfo)
{
    // cinfo->src->bytes_in_buffer = g_buf_len;
    // cinfo->src->next_input_byte = (unsigned char*)g_buf;
}

boolean mem_fill_input_buffer(j_decompress_ptr cinfo)
{
    return true;
}

void mem_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
{
    cinfo->src->bytes_in_buffer -= num_bytes;
    cinfo-&g

标签:bytes,cinfo,OpenCV1.0,添加,cvJpeg2Ipl,input,源码
From: https://blog.csdn.net/guochongxin/article/details/141140469

相关文章

  • 爆改YOLOv8 | yolov8添加GAM注意力机制
    1,本文介绍GAM(GlobalAttentionMechanism)旨在改进传统注意力机制的不足,特别是在通道和空间维度上的信息保留问题。它通过顺序的通道-空间注意力机制来解决这些问题。以下是GAM的关键设计和实现细节:通道注意力子模块:3D排列:使用3D排列来在三个维度上保留信息,这种方法有助于捕......
  • 给 RAID5 添加热备盘
    给RAID5添加热备盘创建RAID5时设置1块热备盘;[root@zhpj~]#mdadm-Cv/dev/md5-n3-l5-x1/dev/sd{b..e}mdadm:layoutdefaultstoleft-symmetricmdadm:layoutdefaultstoleft-symmetricmdadm:chunksizedefaultsto512Kmdadm:sizesetto10476544Km......
  • 打包nginx镜像,添加flv_live模块
    因为工作需要而打包一个包含nginx_http_flv_live模块,记录下编译中遇到的问题,和解决方式编译nginx的最大的一个坑就是基础镜像使用的debian:latest,导致各种编译后能通过rtmp推流但是无法通过http拉取http-flv视频流版本alpine==3.8.5nginx==1.25.5https://nginx.org/down......
  • 添加SCAN IP
    在OracleRAC环境中,添加SCANIP(SingleClientAccessName)是一种提高连接灵活性和负载均衡的方法。以下是添加SCANIP的步骤:查看现有的SCANIP配置情况:使用srvctlconfigscan命令来查看当前的SCAN配置,包括已有的SCANIP地址。修改所有节点的/etc/hosts:在所有RAC节点......
  • 为博客添加Live图
    为博客添加Live图Apple提供了很生动的Live实况图,在实际展示的过程中非常生动形象,在撰写博客的过程中,我自己也尝试将博客中嵌入实况图片其实Apple提供的iCloud网页版为我们提供了很好的示例,为了实现本文开始的效果,我们也将使用Apple官方所提供的方法资源准备在了解如何实现Live......
  • 如何为微信小程序添加地图和位置服务
    为微信小程序添加地图和位置服务可以通过使用微信提供的地图组件和位置API实现。以下是详细步骤和示例代码:创建一个新的微信小程序项目:使用微信开发者工具创建一个新的微信小程序项目。在创建项目时,可以选择"位置"和"地图"权限,以便后续使用位置和地图服务。在小程序......
  • 爆改YOLOv8 | yolov8添加CBAM注意力机制
    1,.本文介绍CBAM的主要思想是通过关注重要的特征并抑制不必要的特征来增强网络的表示能力。模块首先应用通道注意力,关注"重要的"特征,然后应用空间注意力,关注这些特征的"重要位置"。通过这种方式,CBAM有效地帮助网络聚焦于图像中的关键信息,提高了特征的表示力度.以下为CBAM结构......
  • MySql添加用户权限问题
    MySql添加用户权限问题要为MySQL中的test用户授予所有权限,可以按照以下步骤进行:1.连接到MySQL数据库服务器mysql-uroot-p2.授予root用户所有权限grantallon*.*to'test'@'%'identifiedby'yourpassword'withgrantoption;请注意,上述命令中的lo......
  • 为您的网站或博客添加AI:智能优化提升用户体验
    前提一个网站或者一个博客可以下载插件安装插件插件部署创建工具把插件安装到WordPress并启用。填写回调密钥,回调密钥是随便写的,主要用于认证。到LeaflowAmber中点击左侧菜单中的登录来登录LeaflowUserLand账户。登录后点击左侧 工具,然后 新建一个工具,工具名称你可......
  • apisix-dashboard上添加自定义插件
    参考:https://overstarry.vip/posts/apisix如何添加自定义插件/首先,我们需要向自定义的插件user-remote-auth添加到apisix中,对这块不清楚的同学,可以参考我这篇文章:【apisix~lua插件开发与插件注册】,添加成功之后,通过curlhttp://apisix-admin.apisix:9180/apisix/admin/plugins/us......