用widthStep的方法来增加某范围的像素----与imageROI对比

//用widthStep的方法来增加某范围的像素
//作者:sandy
//时间:2015-10-5
#include <cv.h>
#include <highgui.h>
int main(int argc, char** argv){
    //载入图片
    IplImage* interest_img;
    interest_img=cvLoadImage("E:\\picture\\d.jpg",1);
    //定义一个矩形作为感兴趣区域
    CvRect rect=cvRect(100,150,250,250);
    //创建IplImage图像头,制定图像的尺寸,深度和通道数
    IplImage *sub_img= cvCreateImageHeader(
                                            cvSize(rect.width,rect.height ),//图像的尺度=矩形尺度
                                            interest_img->depth ,
                                            interest_img->nChannels 
                                            );
    
    sub_img->origin =interest_img->origin ;//定义图像坐标原点的位置
    sub_img->widthStep =interest_img->widthStep;
    //imageData指针指向兴趣子区域
    sub_img->imageData =interest_img->imageData +
                rect.y *interest_img->widthStep +
                rect.x *interest_img->nChannels ;

    //蓝色通道增加100
    cvAddS(sub_img,cvScalar(100),sub_img);//【存放单通道图像中像素:cvScalar(255)】把第一个sub_img的元素与cvScalar(100)相加放到第二个sub_img里。
    //显示
    cvNamedWindow("roi_add",1);
    cvShowImage("roi_add",sub_img);
    //释放
    cvReleaseImageHeader(&sub_img);
    cvWaitKey();
    
    return 0;
}

posted on 2015-10-11 21:23  北海盗  阅读(469)  评论(0编辑  收藏  举报