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

本文介绍如何使用OpenCV库中的widthStep方法为特定区域内的像素增加亮度。通过加载图片并定义感兴趣区域,实现对选定矩形区域内蓝色通道像素值增加100的操作,并展示最终效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//用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;
}

转载于:https://www.cnblogs.com/beihaidao/p/4870088.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值