에러가 하나 뜨는데 뭐가 문제인지모르겠어요.
큰꽃늘
질문 제목 : 에러가 하나가 뜨는데 이유를 잘모르겠습니다.질문 요약 :소스가 컬러 사진을 흑백으로 바꾸고 이진으로 바꿔 밝은 부분을 강조하게하는 소스입니다.
그런데 에러가 하나 뜨는데요....뭐가 문제인지 잘몰라 질문올립니다. 해더 부분이 에러라고 하는데 해더를 지우니
에러가 더 늘어나구요;;질문 내용 :
#include highgui.h
#include cv.h
#include math.h
iplimage* getedgeimage(iplimage *src_image,int threshold);
void main()
{
int i, j;
byte r,g,b; //byte == unsigned char (0~255)
//마스크
int mask[3][3]={{-1,0,1},
{-1,0,1},
{-1,0,1}};
int mask2[3][3]={{1,1,1},
{0,0,0},
{-1,-1,-1}};
int di[8] = {-1,-1,-1, 0, 0, 1, 1, 1},
dj[8] = {-1, 0, 1,-1, 1,-1, 0, 1};
int var;
int map[315][236];
int map2[315][236];
iplimage* rgb_image;
rgb_image=cvloadimage(picture.jpg,1);
iplimage *gray_image=cvcreateimage(cvgetsize(rgb_image),ipl_depth_8u,1);
iplimage *gray_image2=cvcreateimage(cvgetsize(rgb_image),ipl_depth_8u,1);
file* pixel_value;
file* pixel_value2;
pixel_value2 = fopen(out2.txt,w);
pixel_value = fopen(out.txt , w);
for(i=0;igray_image-height;i++){
for(j=0;jgray_image-width;j++){
b=(byte)rgb_image-imagedata[(i*rgb_image-widthstep)+j*3+0];
g=(byte)rgb_image-imagedata[(i*rgb_image-widthstep)+j*3+1];
r=(byte)rgb_image-imagedata[(i*rgb_image-widthstep)+j*3+2];
var=(byte)((r+g+b)/3);
gray_image-imagedata[(i*gray_image-widthstep)+j]=var;
}
}
for(i=0;igray_image2-height;i++){
for(j=0;jgray_image2-width;j++){
b=(byte)rgb_image-imagedata[(i*rgb_image-widthstep)+j*3+0];
g=(byte)rgb_image-imagedata[(i*rgb_image-widthstep)+j*3+1];
r=(byte)rgb_image-imagedata[(i*rgb_image-widthstep)+j*3+2];
var=(byte)((r+g+b)/3);
gray_image2-imagedata[(i*gray_image-widthstep)+j]=var;
}
}
cvshowimage(gray image,gray_image);
for(int i=0;i315;i++){
for(int j=0;j236;j++){
map[i][j]=0;
}
}
cvshowimage(gray image,gray_image);
for(int i=1; igray_image-height-1; i++){
for(int j=1; jgray_image-width-1; j++){
var=0;
for(int k=0; k8; k++){
var=var+mask[1+di[k]][1+dj[k]] * gray_image-imagedata[((i+di[k])*gray_image-widthstep)+(j+dj[k])];
}
if(abs(var)100)
var=255;
else
var=0;
map[i][j]=var;
}
}
for(int i=1; igray_image2-height-1; i++){
for(int j=1; jgray_image2-width-1; j++){
var=0;
for(int k=0; k8; k++){
var=var+mask2[1+di[k]][1+dj[k]] * gray_image2-imagedata[((i+di[k])*gray_image2-widthstep)+(j+dj[k])];
}
if(abs(var)100)
var=255;
else
var=0;
map2[i][j]=var;
}
}
for(int i=0;i315;i++){
for(int j=0;j236;j++){
if(map[i][j]==0&&map2[i][j]==255)
map[i][j]=255;
}
}
for(int i=1; igray_image-height-1; i++){; i++){
for(int j=1; jgray_image-width-1; j++){
gray_image-imagedata[i*gray_image-widthstep + j ] = map[i][j];
fprintf(pixel_value2,%d,,gray_image-imagedata[(i*gray_image-widthstep )+ j ] );
}
fprintf(pixel_value2,\n);
}
for(int i=0;i315;i++){
for(int j=0;j236;j++){
fprintf(pixel_value,%d, ,map[i][j]);
}
fprintf(pixel_value,\n);
}cvshowimage(rgb image,rgb_image);
cvshowimage(edge image,gray_image);
cvwaitkey(0);
cvreleaseimage(&rgb_image);
cvreleaseimage(&gray_image);
//cvreleaseimage(&edge_image);
}
-
세라 2023-08-06
아뇨 전 윈도 XP 입니다.ㅠㅠ
-
한국녀 2023-08-06
리눅스 사용자이신것 같은데 맞나요??
암튼 cv.h와 highgui.h는 OpenCV 라이브러리 헤더입니다. 헤더 조차 못찾는것으로 보아 우선 OpenCV관련 Development 패키지를 설치하셔야 할 것같구요...
제가 작년에 OpenCV를 조금 했었을 때를 더듬어 보면 컴파일 과정이 그리 순탄치는 않았습니다. -
DevilsTears 2023-08-06
네 맞습니다. 헤더를 못찾더라구요.;ㅠ
-
큰가람 2023-08-06
혹시 헤더를 찾지 못하는 에러인가요?? 정확한 메시지를...