zoukankan      html  css  js  c++  java
  • HBITMAP to IplImage

    HBITMAP to IplImage - -

                                          

    IplImage* hBitmap2Ipl(HBITMAP hBmp)
    {
    BITMAP bmp;

    ::GetObject(hBmp,sizeof(BITMAP),&bmp);

    int nChannels = bmp.bmBitsPixel == 1 ? 1 : bmp.bmBitsPixel/8 ;
    int depth = bmp.bmBitsPixel == 1 ? IPL_DEPTH_1U : IPL_DEPTH_8U;

    IplImage* img = cvCreateImageHeader( cvSize(bmp.bmWidth, bmp.bmHeight)
    , depth, nChannels );

    img->imageData =
    (char*)malloc(bmp.bmHeight*bmp.bmWidth*nChannels*sizeof(char));
    memcpy(img->imageData,(char*)(bmp.bmBits),bmp.bmHeight*bmp.bmWidth*nChannels);

    return img;
    }

    void createDIB(IplImage* &pict){
    IplImage * Red=cvCreateImage( cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),
    IPL_DEPTH_8U, 1 );
    IplImage * Green=cvCreateImage( cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),
    IPL_DEPTH_8U, 1 );
    IplImage * Blue=cvCreateImage( cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),
    IPL_DEPTH_8U, 1 );
    cvSetImageCOI( pict, 3);
    cvCopy(pict,Red);
    cvSetImageCOI( pict, 2);
    cvCopy(pict,Green);
    cvSetImageCOI(pict, 1);
    cvCopy(pict,Blue);
    //Initialize the BMP display buffer
    bmi = (BITMAPINFO*)buffer;
    bmih = &(bmi->bmiHeader);
    memset( bmih, 0, sizeof(*bmih));
    bmih->biSize = sizeof(BITMAPINFOHEADER);
    bmih->biWidth = IMAGE_WIDTH;
    bmih->biHeight = IMAGE_HEIGHT; // -IMAGE_HEIGHT;
    bmih->biPlanes = 1;
    bmih->biCompression = BI_RGB;
    bmih->biBitCount = 24;
    palette = bmi->bmiColors;
    for( int i = 0; i < 256; i++ ){
    palette[i].rgbBlue = palette[i].rgbGreen = palette[i].rgbRed =
    (BYTE)i;
    palette[i].rgbReserved = 0;
    }
    cvReleaseImage(&Red);
    cvReleaseImage(&Green);
    cvReleaseImage(&Blue);
    }

     
  • 相关阅读:
    List集合之Vector分析
    List集合之ArrayList分析
    Linux下的tar压缩解压缩命令详解
    第五次会议(4.7)
    第四次会议(3.31)
    第三次会议(3.17)
    第二次会议(3.9)
    第一次会议(3.1)
    团队的Kick off
    Parse error: syntax error, unexpected T_ENDFOREACH in..报错处理
  • 原文地址:https://www.cnblogs.com/feisky/p/1586628.html
Copyright © 2011-2022 走看看