예전에 강의를 들었던 학생입니다
opencv를 이용하여 영상처리를 하시더라구요.
그래서 그때 쓰셨던 fedora9에 버젼에서 사용하던 소스를
fedora8 버젼으로 옮겨서 사용하려고 합니다. (제가 사용하는 리눅스입니다)
근데 fedora9에서 make를 하면 에러는 안납니다.
fedora8에서 make를 하면 에러가 나네요..
makefile 수정을 했구요, opencv lib파일의 경로도 잘지정한것 같습니다..
--------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
void RGB2cvIMG(IplImage *img,unsigned short *rgb,int ex,int ey)
{
int x,y;
for(y=0; y<ey; y++)
for(x=0; x<ex; x++){
(unsigned int)(img->imageData[(y*img->widthStep)+x*3])=(rgb[y*ex+x]&0x1F)<<3;//b
(unsigned int)(img->imageData[(y*img->widthStep)+x*3+1])=((rgb[y*ex+x]&0x07E0)>>5)<<2;//g
(unsigned int)(img->imageData[(y*img->widthStep)+x*3+2])=((rgb[y*ex+x]&0xF800)>>11)<<3;//r
}
}
int main(int argc, char **argv)
{
IplImage *img = NULL;
unsigned short rgb[240*320];
unsigned char Threshold;
img = cvCreateImage(cvSize(320,240),IPL_DEPTH_8U,3);
printf("load ok.\n");
RGB2cvIMG(img,rgb,320,240);
cvReleaseImage(&img);
return 0;
}
----------------------------------------------------------------------------------------------
소스코드이구요.
에러는 항상
main.c:27: error: invalid lvalue in assignment
main.c:28: error: invalid lvalue in assignment
main.c:29: error: invalid lvalue in assignment
즉
(unsigned int)(img->imageData[(y*img->widthStep)+x*3])=(rgb[y*ex+x]&0x1F)<<3;//b
(unsigned int)(img->imageData[(y*img->widthStep)+x*3+1])=((rgb[y*ex+x]&0x07E0)>>5)<<2;//g
(unsigned int)(img->imageData[(y*img->widthStep)+x*3+2])=((rgb[y*ex+x]&0xF800)>>11)<<3;//r
이부분에서 에러가 납니다.
혹시 저부분의 역할은 무엇인지요?
그리고.. opencv 설치와 관련된 교육자료가 혹시있나요?
|