|
카메라를 처음 접하니 난감합니다.
여기 저기를 뒤져도 화상잡는 방법만 나와 있지, 너무 고급 기술인가 보내요..
홍성진 님이 쓰신 eztw32.dll을 이용한 루틴 잘 보았습니다.
궁금한거 3가지 인데,
1. 아무런 창을 띄우지 않고, 원하는 컬러와 해상도로 캡쳐하기
제가 이용하고자하는 것은..
USB 카메라로부터 일정간격 시간마다 1장씩 사진을 저장하고 보여주게 하려고 합니다.
이런 방식이라면, 소스 선택창과, 해상도 선택창을 띄우지 않아야 하는데.
이러면 handle를 잡을 수 없다는 문제가 생기죠..
또 코닥에서 제공해주는 컴포넌트를 이용해 보았지만 98이라 그런지,
왠지 제대로 동작하지 않았습니다.
//*************************************************************************
{
#define CAP_SCAN_IMAGE_LAYOUT 106
#define CAP_SCAN_IMAGE_HEIGHT 3
#define CAP_SCAN_IMAGE_WIDTH 4
VARIANT vScanWidth, vScanHeight;
ImgScan1->OpenScanner();
vScanWidth = ImgScan1->GetScanCapability(CAP_SCAN_IMAGE_WIDTH);
if(V_VT(&vScanWidth) == VT_ERROR) { Label1->Caption = "Er1";return ; }
vScanHeight = ImgScan1->GetScanCapability(CAP_SCAN_IMAGE_HEIGHT);
if(V_VT(&vScanHeight) == VT_ERROR) { Label1->Caption = "Er2";return ; }
VARIANT sngLayout[4];
V_VT(&sngLayout[0]) = VT_R4; // left start
V_VT(&sngLayout[1]) = VT_R4; // top start
V_VT(&sngLayout[2]) = VT_R4; // width
V_VT(&sngLayout[3]) = VT_R4; // height
V_R4(&sngLayout[0]) = 0; // left start
V_R4(&sngLayout[1]) = 0; // top start
V_R4(&sngLayout[2]) = 640; // width
V_R4(&sngLayout[3]) = 480; // height
ImgScan1->SetScanCapability (CAP_SCAN_IMAGE_LAYOUT, sngLayout);
ImgScan1->StartScan();
ImgScan1->CloseScanner();
}
//**********************************************************************
2. 이건 욕심인데 자신의 응용프로그램에서 카메라로 부터 전송돼는
화면(동영상처럼 움직이는)을 계속 받는 방법이 있는지 궁금합니다..
오버랩이라고 하나요?
3. 동일한 USB 카메라를 여러대 설치하고 각각을 동시에 화상을 잡아야 하는데
소스선택 방법이나, 충돌은 없는 건지요..
거의 총체적인 난국이네요..
참고로 제가 이용하고 있는 카메라는 MiraCam 입니다..
아주 싸고 쓸만한 USB용 고해상도 카메라인데,
1280x1024까지 잡아내더군요, 가상으로 그러는건지 모르지만
디카는 아니어도 실험용으로 쓰기에는 딱인 것 같아서
4대 정도 설치해 놓고, 동시에 화상을 받아서
처리를 하고 싶은데, 첫 단추가 영..
화상처리 장비가 비싸다는 건 아시죠?
답변 부탁드립니다.
|