영상처리

영상처리 기본 소스

지화명이 2010. 6. 7. 15:42


#include<Windows.h>
#include"vfw.h"
#include <math.h>
#include <iostream>


#pragma comment(lib, "vfw32.lib") //vfw32 라이브러리 포함


#define ID_BCAPTURE 101

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK FramInfo(HWND, LPVIDEOHDR); // 콜백 함수

TCHAR str[10];    //정수데이터값 확인을 위한 버퍼
unsigned char Menuflag;  //인터페이스 선택

HINSTANCE g_hInst;
HWND hWndMain;
HWND hVFW;
HWND Hwndmain;
HBITMAP hBit;
BITMAPINFO Bm;    //비트맵 정보를 가짐

//영상 메모리
int Action;

LPCTSTR lpszClass = TEXT("VFW 기본 예제");

 


int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCndParam, int nCmdShow)
{
    HWND hWnd;
    MSG Message;
    WNDCLASS WndClass;
    g_hInst = hInstance;
   
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    WndClass.hInstance = hInstance;
    WndClass.lpfnWndProc = WndProc;
    WndClass.lpszClassName = lpszClass;
    WndClass.lpszMenuName = NULL;
    WndClass.style = CS_HREDRAW|CS_VREDRAW;
   
    RegisterClass(&WndClass);
   
    //영상을 보여줄 윈도우 생성
    hWnd = CreateWindow(lpszClass, lpszClass,WS_OVERLAPPEDWINDOW|WS_CAPTION,200,200,
        300, 300, NULL, (HMENU)NULL, hInstance, NULL);
   
    hWndMain = hWnd;
    ShowWindow(hWnd, SW_SHOW);
   
    while(GetMessage(&Message, 0,0,0))
    {
        TranslateMessage(&Message);
        DispatchMessage(&Message);
    }
    return (int)Message.wParam;
   
}

 

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
    HDC Hdc;
    FILE *file;
    BYTE *imageData;
    BITMAPFILEHEADER *bmfh;
    BITMAPINFO *binfo;

    switch(iMessage)
    {
    case WM_CREATE:
        Hwndmain = hWnd;
       
        Hdc = GetDC(hWnd);
       
        file=fopen("test.bmp","rb");
       
        if(file==NULL)
            MessageBox(0,"파일읽기 실패","에러",0);
          
        fclose(file);
        return 0;
    case WM_COMMAND:
        return 0;
    case WM_LBUTTONDOWN:
        return 0;
    case WM_DESTROY:
        free(imageData);
        free(binfo);
        PostQuitMessage(0);
        return 0;
    }
    return (DefWindowProc(hWnd,iMessage,wParam,lParam));
}