您的位置:首页 > 其它

VS2010,如何取得一幅图像中某个像素值得快捷方法and将某一点像素值改为指定值

2014-07-11 15:56 281 查看
1.取出图片中坐标(i,j)处的像数值
unsigned char getValue(IplImage* img, int x,int y,int channels)

{

if( (x > (img->height -1))|| (x<0) )

return 0;

if( (y > (img->width -1))|| (y<0) )

return 0;

if(channels > (img->nChannels) )

return 0;

if(NULL != img->imageData)

{

return img->imageData[x * img->widthStep + y*img->nChannels + (channels - 1)];

}

}
注:getValue为某个子函数,在主函数中调用即可。
例:int main()
{
***************************
……………………………………………………………………………………
getValue(img, 1,1,1);//采用getValue来取出图片img的单通道坐标(1,1)处的值。……………………………………………………………………………………………………
}

2.将指定坐标位置的值付为指定值
int setValue(IplImage* img, int x,int y,int channels ,unsigned char value)

{

char* const pData = img->imageData;

if( (x > (img->height-1) )|| (x<0) )

return 0;

if( (y > (img->width -1) )|| (y<0) )

return 0;

if(channels > (img->nChannels) )

return 0;

if(NULL != img->imageData)

{

return pData[x * img->widthStep + y*img->nChannels + (channels - 1)] = value;

}

}

注:setValue为某个子函数,在主函数中调用即可。
例:int main()
{
***************************
……………………………………………………………………………………
setValue(img, 1,1,1,1);//采用setValue来把图片img的坐标(1,1)处的值改为1(第一通道)。……………………………………………………………………………………………………
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐