opencv得到一副图像的灰度值问题

怎么用opencv得到一副灰度图像的灰度值啊,很着急,很菜,求高手指教。#include"cv.h"
#include"highgui.h"
#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
IplImage* src = cvLoadImage( "0.bmp", 0 ); //导入图片
int width=src->width;//图片宽度
int height = src->height;//图片高度

for (size_t row=0;row<height;row++)
{
uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针
for (size_t cols=0;cols<width;cols++)
{
int intensity=ptr[cols];
cout<<intensity<<" ";
}
}

return 0;
}
这个代码总是说cout<<intensity<<" ";这里有问题。分不多,求帮帮。

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
int _tmain(int argc, char** argv)
{
 IplImage* src = cvLoadImage("1.png",0);//导入图片
 int width = src->width;//图片宽度
 int height = src->height;//图片高度
 
 for(int row=0;row<height;row++)
 {
  uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针
  for(int cols=0;cols<width;cols++)
  {
   uchar intensity=ptr[cols];//数据类型
   cout<<(int)intensity<<"  ";//强制转换
  }
 }
 return 0;  
}

注释部分修改一下就可以了,测试结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-07-29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
int _tmain(int argc, char** argv)
{
IplImage* src = cvLoadImage("1.png",0);//导入图片
int width = src->width;//图片宽度
int height = src->height;//图片高度

for(int row=0;row<height;row++)
{
uchar* ptr = (uchar*)src->imageData+row*src->width;//获得灰度值数据指针
for(int cols=0;cols<width;cols++)
{
uchar intensity=ptr[cols];//数据类型
cout<<(int)intensity<<" ";//强制转换
}
}
return 0;
}

注释部分修改一下就可以了,测试结果:
第2个回答  2013-11-16
h;//获得灰度值数据指针

【opencv-python】图像灰度直方图计算与绘制
首先,要理解的是,图像的灰度直方图是对图像中不同灰度值出现的频率进行统计的结果。对于一个 RGB 图像,它的直方图通常需要分别对 R、G、B 三个通道进行计算,因为每个通道都代表了不同的颜色信息。要计算和绘制图像灰度直方图,可以使用 OpenCV 的函数 cv2.calcHist()。这个函数需要提供图像、通道索引...

怎么用opencv获取图像灰度值(用C语言)
1、可以变成灰度图也可以不变。这里假设你的图像都是IPL_DEPTH_8U类型。2、如果变成灰度图,就是单通道图像,获取的就是每一个像素点的灰度值。IplImage* img = cvLoadImage("test.bmp", 0);for (int i = 0; i < img->height; i++){ for (int j = 0; j < img->width; j++){ ...

OpenCV中为什么将一幅图片改为灰度图后,灰度图比原图像占用空间大?
如果你原本的图像比较小的话,那有可能因为灰度图像需要颜色表的原因导致灰度图比不需要颜色表的24位真彩图还要大。推荐你用UltraEdit参考图片的格式分析一下这两个图片 在matlab中纯粹是像素点的数值,所以灰度图为真彩的1\/3

opencv 怎么求iplimage格式灰度图像的灰度最大最小值?
可以使用opencv定义的宏来提取象素值 假设灰度图像image,存取其i行j列的象素可以这样:CV_IMAGE_ELEM(image, uchar, i, j)如果是彩色图像就是 CV_IMAGE_ELEM(image, uchar, i, 3*j)CV_IMAGE_ELEM(image, uchar, i, 3*j+1)CV_IMAGE_ELEM(image, uchar, i, 3*j+2)

python opencv身份证灰度图二值化应该怎么处理
图像的灰度处理:CV_LOAD_IMAGE_GRAYSCALE,这是最简单之间的办法,在加载图像时直接处理 IplImage* Igray=cvLoadImage("test.jpg",CV_LOAD_IMAGE_GRAYSCALE);得到的图像就是单通道的,也能够用这个函数:CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code );code=CV_BGR2...

Opencv之图像灰度化
3. 平均值法 将彩色图像中的三分量亮度求平均得到一个灰度值。4. 加权平均法 根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。在Opencv中可以通过以上几种方法的数值计算来...

如何利用opencv对图像进行灰度归一化呢?
如果你的“归一化”指的是吧图像每个像素点都变成同一个值,那么过程如下。cvCvtColor(src,dst,CV_BGR2HSV),参数我记不太清楚了 ,大概就是这样,意思是把BGR图像src转成HSV图像dst。dst的三个通道里存的是H,S,V,H是色彩,S是饱和度,V是亮度。要灰度归一化,只要把图像dst的每个像素V改得...

怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?
先进行灰度化,IplImage* pImg = cvLoadImage( "C:\\\\1.bmp", 0 ); 这样图像已经灰度化,然后调用cvThreshold(image, image, 125, 255, CV_THRESH_BINARY); 就可以了,125那里是你所用的阈值,这就是最简单的二值化,你要用ostu,或者别的高级一点的,就要自己写函数了 ...

为什么用二值化处理图像之后,还会有其他的灰度值,尤其是在一些边缘的...
1. 当我们使用二值化处理图像时,目的是将图像中的像素点的灰度值转换为0或255,代表黑色和白色。2. 在OpenCV中的`cvThreshold`函数就是执行这样的操作,它将像素点的灰度值与设定的阈值进行比较,大于阈值的像素点被设置为最大值(通常是255,代表白色),小于阈值的像素点被设置为最小值(通常是0...

怎样用opencv语句求二值化图像总的灰度值
using namespace std;void main(){ IplImage* src_img=cvLoadImage("0.bmp");\/\/导入图片 size_t total=0;\/\/图像总灰度值 size_t intensity = 0;\/\/每个像素灰度值 size_t height=src_img->height;size_t width =src_img->width;for (size_t rows=0;rows<height;rows++){ uchar* ptr ...

相似回答