I am using Ubuntu 12.04 and OpenCV 2
I have written the following code :
IplImage* img =0;
img = cvLoadImage("nature.jpg");
if(img != 0)
{
Mat Img_mat(img);
std::vector<Mat> RGB;
split(Img_mat, RGB);
int data = (RGB[0]).at<int>(i,j)); /*Where i, j are inside the bounds of the matrix size .. i have checked this*/
}
The problem is I am getting negative values and very large values in the data variable. I think I have made some mistake somewhere. Can you please point it out.
I have been reading the documentation (I have not finished it fully.. it is quite large. ) But from what I have read, this should work. But it isnt. What is going wrong here?
Img_matis a 3 channeled image. Each channel consists of pixel valuesucharin data type.So with
split(Img_mat, BGR)theImg_matis split into 3 planes of blue, green and red which are collectively stored in a vectorBGR. SoBGR[0]is the first (blue) plane withuchardata type pixels…hence it will beso on…