Opencv 图片格式转为boost::gil格式

前言

项目需要将opencv格式的图像转化为boost::gil库的图像格式,特将转化方法记录。

实现

下面代码演示如何用opencv读取.jpg格式图片,并将其转化为boost::gil::rgb8_image_t格式图像。

#include <opencv2/opencv.hpp>
#include <boost/gil/image.hpp>
#include <boost/gil/image_view.hpp>

void Ipl2Gil(boost::gil::rgb8_image_t &image)
{
    IplImage *src = cvLoadImage("lena.jpg",1);
    image.recreate(src->width,src->height);
    boost::gil::rgb8_view_t imgV =  boost::gil::view(image);
    boost::gil::rgb8_view_t::iterator it = imgV.begin();
    uchar *ptr = NULL;
    for(int i = 0; i < src->height; i++)
    {
        for(int j = 0; j < src->width; j++)
        {
            ptr = (uchar*)(src->imageData + i*src->widthStep +j*3);
            //opencv 中图像排列格式是B-G-R格式,不是R-G-B格式
            boost::gil::rgb8_pixel_t  pix(*(ptr +2),*(ptr +  1),*(ptr));
            *it++ = pix;
        }
    }
    //返回
    return boost::gil::view(image);
}

参考资料:
1. 使用Boost.Gil将BMP图片保存为JPG:http://www.cnblogs.com/LinuxHunter/archive/2010/12/19/1910346.html
2. boost GIL图形图象库学习资料汇总:http://www.docin.com/p-102194666.html


转载请注明作者和出处:http://blog.csdn.net/holamirai,未经允许请勿用于商业用途。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值