filter2D
関数を使うためにはlibopencv_imgproc.so をリンクしないといけない。
筆者の場合-lopencv_imgproc
をg++に渡した。
ソースコードは公式チュートリアルのMask operations on matrices。
filter2D
関数が使われており、
g++ sample.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui
でコンパイルすると
/usr/bin/ld: /tmp/cc3rtebF.o: シンボル '_ZN2cv8filter2DERKNS_11_InputArrayERKNS_12_OutputArrayEiS2_NS_6Point_IiEEdi' への未定義参照です
//usr/local/lib/libopencv_imgproc.so.3.4: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
エラーが出る。
-lopencv_imgproc
を追加すれば通るはず。
g++ sample.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_imgproc