|
안녕하세요 김영욱이라고 합니다.
우선 영상처리를 하시는 분을 만나서 대단히 반갑습니다. (저도 영상처리쪽 일을 하거든요..)
우선은 컬러 BMP파일을 사용하여 픽셀정보를 얻어오는 것은 매우 쉽습니다.
물론 나중에 영상처리한 결과를 어떻게 다시 보여주는(Re-Draw)것이 더 중요할것 같은데요..
혹시 님께서 PC카메라를 가지고 계신다면 자료실에 제가 올린 비디오 컴포넌트를 설치하시고
VFW와 Canvas->Pixels Method의 차이를 느껴보셨으면 좋겠네요..
각설하고 TImage와 TPaintBox를 사용하신다면
8bit의 경우 TImage의 영상을 메모리로 읽어오는 경우
unsiged char FrameMemory[240*320];
선언하시고...
int i,j,k;
for(i=0;i<240;i++)
for(j=0;j<320;j++)
{
//Grey의 경우
FrameMemory[(i*240)+j] = Image1->Canvas->Pixels[i][j];
}
Color의 경우 FrameMemory에서 TImage로 뿌리는 경우
BYTE FrameMemory[240*320*3];
int i,j,k;
for(i=0;i<320;i++)
for(j=0;j<240;j++)
{
k = i+320*(240-j);
Canvas->Pixels[6+i][261+j]=RGB(FrameMemory[k*3+2],FrameMemory[k*3+1],FrameMemory[k*3+0]);
}
등등으로 사용하시면 될것 같네요..
그럼 즐프하세요..
안병욱 님이 쓰신 글 :
:
: row와 column을 순차적으로 읽어서
:
: 각 좌표와 그에 해당하는 컬러값을 얻고 싶습니다...
:
: 버퍼를 이용하려구 하구요...
:
: 칼라 BMP를 그레이 스케일로 전환한 후에(여기까진 겨우 해냈는데..)
:
: 그레이 스케일 BMP의 각 픽셀정보를 얻어서
:
: 결국은 thresholding을 하려구 하거든요...
:
:
:
: 컬러값(0~255)까지를 얻어내고 그걸 0,1의 binary image로 바꾸는게 최종 목적인데
:
: 쉬워보이면서도 잘 안되네요...
|