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);
    }

     
  • 相关阅读:
    SQL语句字符串处理大全
    iframe的属性
    The GridView 'gv ' fired event RowEditing which wasn 't handled.
    parttime job
    一个女孩如何准备行装和安全的独自旅行
    DORADO展现中间件的实现
    在asp.net 2.0中使用自定义的provider (转)
    MemberShip 的使用介绍(转)
    DBHelper
    jQuery学习——介绍演示网站
  • 原文地址:https://www.cnblogs.com/feisky/p/1586628.html
Copyright © 2011-2022 走看看