Ubuntu下OpenCV编程[1]-下载并安装测试OpenCV库

下载并解压,配置CMake并生成Makefile文件

wget https://github.com/opencv/opencv/archive/3.3.0.tar.gz
tar -zxvf 3.3.0.tar.gz
cd opencv-3.3.0/
mkdir build
cd build
cmake .. -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local 

编译安装

make 
sudo make install
# 配置动态链接库共享
sudo touch /etc/ld.so.conf.d/opencv.conf
sudo echo " /usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf
sudo ldconfig -v

测试程序

不使用IDE,手动编写Makefile进行编译

main.cpp

#include 

int main(int argc, char **argv)
{
  IplImage *img = cvLoadImage(argv[1]);
  cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
  cvShowImage("Example1", img);
  cvWaitKey(0);
  cvReleaseImage(&img);
  cvDestroyWindow("Example1");
  return 0;
}

Makefile

first_test: main.cpp
    g++ `pkg-config opencv --cflags` main.cpp -o first_test `pkg-config opencv --libs`  

clean:
    rm *.o first_test

说明

  • pkg-config 是一个记录SDK配置信息工具,opencv配置信息记录在/usr/local/lib/pkgconfig/opencv.pc中使用pkg-config可以查阅相关信息:
    如:

    pkg-config opencv –cflags 返回头文件位置
    hui@hui-Lenovo-V1000:/usr/local/lib/pkgconfig$ pkg-config opencv –cflags
    -I/usr/local/include/opencv -I/usr/local/include
    pkg-config opencv –libs 返回库文件位置
    hui@hui-Lenovo-V1000:/usr/local/lib/pkgconfig$ pkg-config opencv –libs
    -L/usr/local/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core

  • 关于g++搜索头文件和库文件的顺序


运行结果
Ubuntu下OpenCV编程[1]-下载并安装测试OpenCV库_第1张图片

使用集成开发环境CLion

OpenCV使用CMake进行跨平台编译,其Sample中有现成的CMakeLists.txt模板可以照抄

# cmake needs this line
cmake_minimum_required(VERSION 2.8)

# Define project name
project(video_test)

# set c++ version
set(CMAKE_CXX_STANDARD 11)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)

# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

if(CMAKE_VERSION VERSION_LESS "2.8.11")
    # Add OpenCV headers location to your include paths
    include_directories(${OpenCV_INCLUDE_DIRS})
endif()

# Declare the executable target built from your sources
add_executable(video_test main.cpp)

# Link your application with OpenCV libraries
target_link_libraries(video_test ${OpenCV_LIBS})

测试程序

#include 

int main()
{
    cv::VideoCapture capture;
    capture.open(0);
    while (true) {
        cv::Mat frame;
        capture >> frame;

        if (frame.empty()) break;

        cv::Mat edges;
        cv::cvtColor(frame, edges, CV_BGR2GRAY);
        blur(edges, edges, cv::Size(7, 7));

        cv::Canny(edges, edges, 0, 30, 3);
        cv::imshow("读取视频", edges);
        cv::waitKey(10);
    }
    return 0;
}

Ubuntu下OpenCV编程[1]-下载并安装测试OpenCV库_第2张图片

你可能感兴趣的:(OpenCV库)