질문을 잘 이해하지 못하겠네요..
OpenCV를 통해 영상처리를 공부한다구요?
제가 OpenCV를 잘 몰라서 뭐라 정확하 설명을 못드리겠네요..
OpenCV에 윈도우Handle을 넘겨줘서 영상을 화면에 뿌려주는 기능 말구..
RawData를 바로 받을수 있는 기능이 없습니까?
방법1
1) RowData를 바로 받아서 TImage에 Draw해주고
2) TImage위에다가 원이나 타원을 그리면 될것 입니다.
; OpenCV 라이브러리에 Panel->Handle을 넘겨서 바로 뿌려주도록 했다면..
방법2-1
1) TImage를 transparent=true로 하시구
2) TImage에다가 타원만 그리면 될듯..
(OpenCV를 써보지 않아서.. 추축입니다.)
방법2-2
; TImage를 사용하지 않고 바로 TPanel의 Canvas에 그리면 됩니다.
TPanel은 Canvas가 라는 Proeprty가 안보이는데..
아래링크의 팁을 이용해도 되구
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=546
다음과 같이 사용해도 됩니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
static TCanvas *PanelCanvas=NULL;
if(PanelCanvas==NULL)
{
PanelCanvas=new TCanvas;
PanelCanvas->Handle=GetDC(Panel1->Handle);
}
PanelCanvas->Rectangle(rc);
PanelCanvas->Ellipse(8,8,8,8,);
}
문론 ButtonClick에 그려주면 한번만 그려주니까
다시 Paint가 발생하면 지워집니다. 계속 반복해서 그려주는 로직이 필요하죠..
위 방법중 1번이 가능하면 권하고 싶습니다.
그럼..
김병규 님이 쓰신 글 :
: Panel 위에 원이나 타원을 그릴 수 있는 방법은 없나요??
:
: 이렇게 되면 깜박임 문제가 있을수 있을것도 같은데...
:
: 원래라면 image에다가 바로 그려서 panel 위에다가 한번에 뿌려주고 싶은데..
:
: 아직 모르는게 너무 많아서..
:
: 조언 좀 부탁드리겠습니다! (--) (__) (--)
:
: 장성호 님이 쓰신 글 :
: : TImage컨트롤은 윈도우 핸들이 없는 GrahpicControl입니다.
: :
: : Form이나 Panel등은 WinControl이구요
: :
: : TImage의 Canvas->Handle은 WindowHandle이 아니라
: :
: : DC입니다.
: :
: : 그럼...
: :
: :
: :
: : 김병규 님이 쓰신 글 :
: : : Open cv를 이용해서 영상처리를 공부하고 있습니다.
: : :
: : : 다름이 아니라 웹캠으로 부터 받는 영상을 Image 컴포넌트에 띄우기 위해서
: : :
: : : HWND hwnd1 = Image->Canvs->Handle;
: : :
: : : 위와 같이 하면 영상이 제가 폼위에 올려 놓은 이미지 컴포넌트 위에 나타나는 것이 아니라
: : :
: : : 자꾸 모니터 왼쪽 끝에 영상이 나타납니다.
: : :
: : : Panel이나 다른 컴포넌트의 handle을 받아 와서 뿌려줄때는 문제가 없었는데...
: : :
: : : Image컴포넌트를 쓸때만 이렇네요...
: : :
: : : Panel에다 뿌려줘도 상관은 없는데.. 제가 받아온 영상위에 원을 그려서 물체를 tracking을
: : :
: : : 해야하는데.. 다른 컴포넌트에는 타원(ellipse)을 그려줄 수 있는 방법이 없는거 같아서요..
: : :
: : : 영상의 위치를 제가 폼 위에 올려 놓은 그 위치에다 나오게 하라면 어떻게 해야 하나요...
: : :
: : : 조언 좀 부탁드리겠습니다!