|
TImage 올려서 했었던 소스가 있네요.
IplImage* srcImg = cvCreateImageHeader(cvSize(w, h), IPL_DEPTH_8U, 1);
cvSetData(srcImg,(void *)pt.llVal,w);
IplImage* frame_copy = cvCreateImage( cvSize(srcImg->width,srcImg->height),IPL_DEPTH_8U, srcImg->nChannels );
cvFlip(srcImg,frame_copy);
//----- Bitmap Info
LPBITMAPINFO m_lpBitmapInfo = (BITMAPINFO *)GlobalAlloc(GMEM_FIXED, sizeof(BITMAPINFOHEADER) + 256*sizeof(RGBQUAD));
if(m_lpBitmapInfo == NULL) return ;
m_lpBitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
m_lpBitmapInfo->bmiHeader.biWidth = w;
m_lpBitmapInfo->bmiHeader.biHeight = h;
m_lpBitmapInfo->bmiHeader.biPlanes = 1;
m_lpBitmapInfo->bmiHeader.biBitCount = 8;
m_lpBitmapInfo->bmiHeader.biCompression = BI_RGB;
m_lpBitmapInfo->bmiHeader.biSizeImage = w*h;
m_lpBitmapInfo->bmiHeader.biXPelsPerMeter = 0;
m_lpBitmapInfo->bmiHeader.biYPelsPerMeter = 0;
m_lpBitmapInfo->bmiHeader.biClrUsed = 0;
m_lpBitmapInfo->bmiHeader.biClrImportant = 0;
for(short j=0; j<256; j++)
{
m_lpBitmapInfo->bmiColors[j].rgbBlue = j;
m_lpBitmapInfo->bmiColors[j].rgbRed = j;
m_lpBitmapInfo->bmiColors[j].rgbGreen = j;
}
SetDIBitsToDevice( Image->Canvas->Handle, // handle of device context
0, // x-coordinate of upper-left corner of dest. rect.
0, // y-coordinate of upper-left corner of dest. rect.
w, // source rectangle width
h, // source rectangle height
0, // x-coordinate of lower-left corner of source rect.
0, // y-coordinate of lower-left corner of source rect.
0, // first scan line in array
h, // number of scan lines
frame_copy->imageData, // address of array with DIB bits
(LPBITMAPINFO)m_lpBitmapInfo, // address of structure with bitmap info.
DIB_RGB_COLORS); // RGB or palette indices
GlobalFree((BITMAPINFO *)m_lpBitmapInfo);
김병규 님이 쓰신 글 :
: Open cv를 이용해서 영상처리를 공부하고 있습니다.
:
: 다름이 아니라 웹캠으로 부터 받는 영상을 Image 컴포넌트에 띄우기 위해서
:
: HWND hwnd1 = Image->Canvs->Handle;
:
: 위와 같이 하면 영상이 제가 폼위에 올려 놓은 이미지 컴포넌트 위에 나타나는 것이 아니라
:
: 자꾸 모니터 왼쪽 끝에 영상이 나타납니다.
:
: Panel이나 다른 컴포넌트의 handle을 받아 와서 뿌려줄때는 문제가 없었는데...
:
: Image컴포넌트를 쓸때만 이렇네요...
:
: Panel에다 뿌려줘도 상관은 없는데.. 제가 받아온 영상위에 원을 그려서 물체를 tracking을
:
: 해야하는데.. 다른 컴포넌트에는 타원(ellipse)을 그려줄 수 있는 방법이 없는거 같아서요..
:
: 영상의 위치를 제가 폼 위에 올려 놓은 그 위치에다 나오게 하라면 어떻게 해야 하나요...
:
: 조언 좀 부탁드리겠습니다!
|