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(第一通道)。……………………………………………………………………………………………………
}
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(第一通道)。……………………………………………………………………………………………………
}
相关文章推荐
- 使用 Java 进行图像处理 - 取得图像上指定位置像素的 rgb 颜色分量
- HM在帧内预测中如何指定一幅图像作为一个slice,一个CU作为一个PU的
- 如何获取屏幕上当前最前面的一幅图像从左上角到右下角的每一个像素 RGB 的值?
- 每天一点matlab——如何将一幅图像(640*360)分成4个局域(160*90)读取
- HM在帧内预测中如何指定一幅图像作为一个slice,一个CU作为一个PU的
- 使用 Java 进行图像处理 - 取得图像上指定位置像素的 rgb 颜色分量
- 用OpenCV建立一幅只有几个像素且值可以自定义的图像,并输出保存到硬盘的方法!
- 如何在ActionScript 3.0里使用工厂模式和模板方法模式(Factory and Template Method Patterns)
- 如何用.Net 取得指定网面的内容? How to get html web page data?
- *关于如何获取指定表的指定字段的数据类型的方法
- (备忘)如何用Request方法取得当前请求页面地址中的各个部分
- c#如何取得事件注册的方法 收藏
- java像素级图像处理与识别方法
- 今天学习Flex3.2嵌入图片,值得说道的是如何嵌入scale-9 缩放的图像
- 如何可以将图片生成为指定300*300像素的图片文件?
- 对竹子的"如何得到方法调用方的源代码行号?"的一点补充
- opencv里常用的访问图像像素数据方法
- 如何识别上传前检测的图像是有效的方法
- 什么是BIOS?如何进入BIOS,恢复BIOS原始设置的快捷方法
- 如何得到bitmap某一点像素的RGB值