#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img=imread("f:/1.jpg");
int height=img.rows;
int width=img.cols;
for(int i=0;i<height;i++)
{
unsigned char *data=img.data+i*width*img.channels();
for(int j=0;j<width;j++)
{
int r=*(data+j*img.channels());
int g=*(data+j*img.channels()+1);
int b=*(data+j*img.channels()+2);
cout<<r<<" "<<g<<" "<<b<<endl;
}
}
img.release();
system("pause");
return 1;
}
#include "WangSetup.h"
#include <iostream>
#include <cv.h>
#include <highgui.h>
using namespace std;
int main()
{
//C++ Format
cv::Mat img = cv::imread("lena.jpg");
//取img中(30, 20)这个像素点的bgr信息
cv::Vec3b bgr = img.at<cv::Vec3b>(30, 20);
cout << "B: " << (unsigned int)bgr.val[0] << ", ";
cout << "G: " << (unsigned int)bgr.val[1] << ", ";
cout << "R: " << (unsigned int)bgr.val[2] << endl;
//C Format
IplImage *img2 = cvLoadImage("lena.jpg"); //8UC3, (0,0)B, (0,0)G, (0,0)R, (0,1)B, ...
char *ptr = img2->imageData //图像首地址
+ img2->widthStep * 30 //每行大小 * 行数
+ 3 * 20; //BGR占3个大小空间 * 列数
printf("B: %d, G: %d, R: %d\n", (uchar)ptr[0], (uchar)ptr[1], (uchar)ptr[2]);
cvReleaseImage(&img2);
return 0;
}
CvScalar s;
s = cvGet2D(src, j,i);//获取src图像中坐标为(i,j)的像素点的值
s.val[0] 代表src图像BGR中的B通道的值~