高翔十四讲第五讲

本章节主要讲诉了相机识别相关的基础知识以及OpenCV的安装和应用。

1.首先进入官网对OpenCV进行安装:

https://opencv.org/releases

选择Sources进行下载,再提取的自己设定的文件夹内以便于后期安装。

2.从文件下的路径下打开终端,随后先下载相关的依赖项 

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libopenexr-dev libtbb-dev

其中与书中不同的是“libjpeg-dev ”我没有安装,因为这个与Ubuntu20.04不兼容,

libjpeg-dev是用于处理 JPEG-2000 格式图像的开发库。在早期的 OpenCV 版本中,这可能是一个默认的依赖项。但是,随着时间的推移和新版本的发布,OpenCV 逐渐减少了对它的依赖,并改为使用其他图像处理库。

如果你没有安装 libjpeg-dev,OpenCV 在处理 JPEG-2000 格式图像时可能会受到影响,但这通常不会影响常见的 JPEG 或 PNG 图像处理功能。

3.对OpenCV进行安装:

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
make -j8
sudo make install

一定要将OpenCV安装在规定的路径之中,这里需要注意。

4.在KDevelop中进行项目构建,其中CMakLists.txt可以设置成为:

set( CMAKE_CXX_FLAGS "-std=c++11")

cmake_minimum_required( VERSION 2.8 )
project( imageBasics )

set(OpenCV_DIR "usr/local/opencv3/share/OpenCV")

# 寻找OpenCV库
find_package( OpenCV REQUIRED )
# 添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )
# 可执行程序
add_executable( imageBasics imageBasics.cpp )
# 链接OpenCV库
target_link_libraries( imageBasics ${OpenCV_LIBS} )

# 可执行程序
add_executable(undistortImage undistortImage.cpp)
# 链接OpenCV库
target_link_libraries(undistortImage ${OpenCV_LIBS})


注意需要通过C++11的设置,以及对opencv3的路径进行确定,也就是上一步中cmake的路径。

5.第一个程序的运行中,需要规定图片ubuntu.png的位置,我是将其放在文件夹之中,在run后,在终端打开,输入:

./imageBasics /home/lpd/cod/ch5/imageBasics/build/ubuntu.png 

则会出现对应结果:

运行第二个程序,结束后在终端输入:

./undistortImage /home/lpd/cod/ch5/imageBasics/build/distorted.png 

可得:

注意,此处的照片在run时必须放在build的文件夹中,否则会显示编译失败:

/home/lpd/cod/ch5/imageBasics/build> /home/lpd/cod/ch5/imageBasics/build/undistortImage
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(3.4.16) /home/lpd/library/opencv-3.4.16/modules/highgui/src/window.cpp:382: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'

*** Failure: /home/lpd/cod/ch5/imageBasics/build/undistortImage has crashed ***

6.针对双目视觉运行中的问题以及解决情况:

对CMakeLists.txt进行修改:

find_package(Pangolin REQUIRED)
 
find_package(OpenCV 3.0 REQUIRED)     
include_directories(${OpenCV_INCLUDE_DIRS})  
#添加Eigen头文件
include_directories("/usr/local/include/eigen3")   
 
add_executable(stereoVision stereoVision.cpp)
target_link_libraries(stereoVision ${OpenCV_LIBS} ${Pangolin_LIBRARIES})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")

注意:cpp文件中存在的decay_t, remove_pointer_t, enable_if_t都属于C++14新引用的特性,所以需要保证g++的版本足够。其次我的eigen3是在官网下载,故路径与apt安装不同,如出现报错,自行修改。

在build时发现程序报错,原因是寻找不到png图片文件,我尝试修改图片路径,后发现没有用,和上文一样,必须保证图片和执行文件在同一个位置,故将其放入Build文件夹中,则运行成功:

同时,下方的warning我不清楚是什么原因,但对结果没有什么影响,故没有细究,希望大家懂的也可以帮助说明一下。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值