tomo_muのプロフィール

@tomo_mu tomo_mu
ありがとう数0
質問数0
回答数1
ベストアンサー数
0
ベストアンサー率
0%
お礼率
0%

  • 登録日2009/08/24
  • OpenCV をやってる初心者ですがOpenSURFで分からないことがあるので教えてください。

    今OpenSURFのmain.cppをいろいろいじくろうとしています。 もともとOpenSURFであった #include "surflib.h" #include "kmeans.h" #include <ctime> #include <iostream> 以外に自分でヘッダ#include "image_size_change.h"を作りました。 そこでは、入力画像を640*480のサイズに変更するのが目的です。 新しく作ったヘッダではchange_sizeとういう関数をつくります。型名はIplImage * です。 そこでmain.cppではimageを読み込むcvLoadImageの下の行に画像サイズを変更する。change_sizeを読んで 変更した画像を返してもらいます。たぶんそこは合ってる気がしますが、分からないのは実行する度に画像のサイズが 前にあったのが残ったままで2回くらい実行して(Make -f Makefile)後初めて意図通りの挙動になります。 なぜなんでしょうか?? どなたか教えて下さい。お願いします. main.cppは別に添付します。 Makefileは以下です. # Indicates compilator to use CC = g++ # Specifies compilator options CFLAGS = -O3 -Wall `pkg-config --cflags opencv` -D LINUX LDFLAGS = LDLIBS = `pkg-config --libs opencv` # Files extensions .cpp, .o SUFFIXES = .cpp .o .SUFFIXES: $(SUFFIXES) . # Name of the main program PROG = surf # Object files .o necessary to build the main program OBJS = fasthessian.o integral.o main.o surf.o utils.o ipoint.o all: $(PROG) # Compilation and link $(PROG): $(OBJS) $(CC) $(LDFLAGS) -o $(PROG) $(OBJS) $(LDLIBS) .cpp.o: $(CC) $(CFLAGS) -c $< -o $@ clean: -rm -f $(PROG) -rm -f *.o までです。 そして自分の作ったヘッダimage_size_change.hは以下です。 IplImage *change_size(IplImage *img){ IplImage *change_img=img; change_img = cvCreateImage( cvSize(img->width,img->height),IPL_DEPTH_8U, 3); cvResize(img,change_img,CV_INTER_CUBIC); return change_img; }