分享

图像像素点值获取

 叶喜勇图书馆 2012-12-25
OpenCV中获取图像某一像素值
This is a basic example for the OpenCV.


//------------------------------------------------------------------------------int main(int argc, char* argv[])
...{
    IplImage *img=cvLoadImage("c://fruitfs.bmp",1);
    CvScalar s;
    for(int i=0;i<img->height;i++)...{
        for(int j=0;j<img->width;j++)...{
        s=cvGet2D(img,i,j); // get the (i,j) pixel value
        printf("B=%f, G=%f, R=%f ",s.val[0],s.val[1],s.val[2]);
        s.val[0]=111;
        s.val[1]=111;
        s.val[2]=111;
        cvSet2D(img,i,j,s);//set the (i,j) pixel value
        }
    }
    cvNamedWindow("Image",1);
    cvShowImage("Image",img);
    cvWaitKey(0); //等待按键
    cvDestroyWindow( "Image" );//销毁窗口
    cvReleaseImage( &img ); //释放图像
    return 0;
}

First we must know the structure of IplImage:
IPL image:
IplImage
  |-- int nChannels; // Number of color channels (1,2,3,4)
  |-- int depth; // Pixel depth in bits:
  | // IPL_DEPTH_8U, IPL_DEPTH_8S,
  | // IPL_DEPTH_16U,IPL_DEPTH_16S,
  | // IPL_DEPTH_32S,IPL_DEPTH_32F,
  | // IPL_DEPTH_64F
  |-- int width; // image width in pixels
  |-- int height; // image height in pixels
  |-- char* imageData; // pointer to aligned image data
  | // Note that color images are stored in BGR order
  |-- int dataOrder; // 0 - interleaved color channels,
  | // 1 - separate color channels
  | // cvCreateImage can only create interleaved images
  |-- int origin; // 0 - top-left origin,
  | // 1 - bottom-left origin (Windows bitmaps style)
  |-- int widthStep; // size of aligned image row in bytes
  |-- int imageSize; // image data size in bytes = height*widthStep
  |-- struct _IplROI *roi;// image ROI. when not NULL specifies image
  | // region to be processed.
  |-- char *imageDataOrigin; // pointer to the unaligned origin of image data
  | // (needed for correct image deallocation)
  |
  |-- int align; // Alignment of image rows: 4 or 8 byte alignment
  | // OpenCV ignores this and uses widthStep instead
  |-- char colorModel[4]; // Color model - ignored by OpenCV

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多