Windowsとubuntuで使用GaussianBlur
していますが、ubuntuのリリースモードの時間は、Windowsのデバッグモードとほぼ同じですか?
vs2017 リリースおよびデバッグ モードで、/openmp /fp:fast /sdl- /permissive- /Gy /Oi /arch:AVX2 /O2 /Ot /MD を開きます。
そして、ubuntu 16.04 で opencv3.4.0 ビルド:
cmake -D WITH_TBB=ON -D WITH_OPENMP=ON -D WITH_IPP=ON -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_EXAMPLES=OFF -D WITH_NVCUVID=ON -D WITH_CUDA=ON -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=オフ -D WITH_CSTRIPES=オン -D WITH_OPENCL=オン CMAKE_INSTALL_PREFIX=/usr/local/ ..
メイクファイル:
CC = g++
OPENCV_INC_PATH := ./opencv-3.4.0/include
OPENCV_LIB_PATH := ./opencv-3.4.0/build/lib
OBJS = edgeBlend.o
LIBS = edgeBlend.so
INCLUDE_PATH := -I ${OPENCV_INC_PATH}
LIB_PATH := -L ${OPENCV_LIB_PATH}
CXXFLAGS := ${INCLUDE_PATH} ${LIB_PATH} -Wall -O2 -std=c++11 -fPIC -march=native -ffast-math -fopenmp
LD_FLAGS := -lopencv_core -lz -lrt -ldl -lm -lpthread -ljpeg -ltiff -lpng -lopnecv_imgproc
all : $(LIB)
%.o : %.cpp
$(CC) $(CXXFLAGS) -c $< -o $(@)
$(LIB) : $(OBJS)
rm -f $(@)
$(CC) $^ -shared -o $(@) ${LIB_PATH} ${LD_FLAGS}
rm -f $(OBJS)
clean:
rm -f $(OBJS) $(LIB)
以下は私のコードです。画像サイズは640 * 480 * 3です:
double start = cv::getTickCount();
cv::GaussianBlur(img_cont, edge_gau, Size(3, 3), 0.8);
cv::GaussianBlur(img_back, img_gau, Size(3, 3), 0.8);
double end = cv::getTickCount();
double time = (end - start) / cv::getTickFrequency();
ウィンドウズ:
デバッグ コスト時間: 0.02 秒
解放コスト時間:0.005秒
Ubuntu:
解放コスト時間:0.02秒