A C++ implementation of GPU accelerated Image Processing using OpenCV for conversion of any color image into its greyscale version.
A C++ implementation of GPU accelerated conversion of any color image into its greyscale version.
These instructions are for OS X 10.9 “Mavericks”.
Step 1. Build and install OpenCV. The best way to do this is with Homebrew. However, you must slightly alter the Homebrew OpenCV installation; you must build it with libstdc++ (instead of the default libc++) so that it will properly link against the nVidia CUDA dev kit.
Step 2. You can now create 10.9-compatible makefiles, which will allow you to build and run your homework on your own machine:
mkdir build
cd build
cmake ..
make
Instruction for make :
NVCC = nvcc
OPENCV_LIBPATH = /usr/lib
</br>
OPENCV_INCLUDEPATH = /usr/include
</br>
OPENCV_LIBPATH = /usr/local/lib
</br>
OPENCV_INCLUDEPATH = /usr/local/include
</br>
OPENCV_LIBPATH = /opt/local/lib
</br>
OPENCV_INCLUDEPATH = /opt/local/include
</br>
OPENCV_LIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
</br>
CUDA_INCLUDEPATH = /usr/local/cuda-5.0/include
</br>
CUDA_INCLUDEPATH = /usr/local/cuda/include
</br>
CUDA_LIBPATH = /usr/local/cuda/lib
</br>
NVCC_OPTS = -O3 -arch=sm_20 -Xcompiler -Wall -Xcompiler -Wextra -m64
</br>
GCC_OPTS = -O3 -Wall -Wextra -m64
</br>
student: main.o student_func.o compare.o reference_calc.o Makefile</br>
$(NVCC) -o HW1 main.o student_func.o compare.o reference_calc.o -L $(OPENCV_LIBPATH) $(OPENCV_LIBS) $(NVCC_OPTS)
</br>
main.o: main.cpp timer.h utils.h reference_calc.cpp compare.cpp HW1.cpp</br>
g++ -c main.cpp $(GCC_OPTS) -I $(CUDA_INCLUDEPATH) -I $(OPENCV_INCLUDEPATH)
</br>
student_func.o: student_func.cu utils.h</br>
nvcc -c student_func.cu $(NVCC_OPTS)
</br>
compare.o: compare.cpp compare.h</br>
g++ -c compare.cpp -I $(OPENCV_INCLUDEPATH) $(GCC_OPTS) -I $(CUDA_INCLUDEPATH)
</br></br>
reference_calc.o: reference_calc.cpp reference_calc.h</br>
g++ -c reference_calc.cpp -I $(OPENCV_INCLUDEPATH) $(GCC_OPTS) -I $(CUDA_INCLUDEPATH)
</br>
clean:</br>
rm -f *.o *.png hw