|
제가 영상처리를 공부하고 있습니다.
그런데 볼랜드는 영상을 VC++처럼 뿌려주니 오래 걸리더군요.
그런데 영상처리는 대부분 그레이 에서 작업을 하기 때문에
이미지 자체를 처리 하는것이 아니고
영상을 unsigned char 배열에 집어 넣고 처리후
다시 이미지에 뿌려주는 형식인데...
지금 저는
a : 영상이 처리되고 저장 되는 배열
for(i=0;i<height;i++)
for(j=0;j<width;j++)
Image1->Canvas->pixels[j][i] = RGB(a[i][j],a[i][j],a[i][j]);
이런 형식으로 하는데 출력 시간이 엄청 걸리는군요.
속도가 생명인 영상처리에서...ㅡㅡ;
그래서 여기 저기 찾다보니
Image->Canvas->Draw()이 함수가 있던데...
문제는 함수의 매개변수가 Graphics::TBitmap 밖에 못들어 가더군요.
결국 Graphics::TBitmap 인스턴스를 만들어서 저리로 데이터를 넣는데
b : Graphics::TBitmap의 인스턴스
for(i=0;i<height;i++)
for(j=0;j<width;j++)
b->Canvas->pixels[j][i] = RGB(a[i][j],a[i][j],a[i][j]);
Image1->Canvas->Draw(0,0,b);
이런 식으로 해야 되는건지...
이러면 결국 for문이 돌아가는데 걸리는 부하는 똑같다고 생각하기 때문에...
Graphics::TBitmap 인스턴스로 픽셀값이 바로 넘어가는 방법은 없나요?
|