GTX1080+Ubuntu16.04+Cuda8.0+Anaconda2+Opencv3

说到这个opencv,真的是装的我想吐血。本来还记录了挺多错的,结果重装系统一下子都没了。不过还好,只是ubuntu没了。我之前装cuda装不好的时候由此还一不小心把windows干掉了,还好因为新电脑没多少东西在里面。所以啊,重要的东西不要放在桌面,也不要丢在C盘,ubuntu下的文件也不要放在它自己的computer里,直接放在windows的盘里。然后磁盘分区还有格式化这种事情,如果有可能,新手还是不要自己作死的尝试了,我是没办法...


caffe官方的配置文档上又说,opencv需要>=2.4 包括3.0,好像这个配置下选3.0的比较多,所以我就选了3。我也是参考了特别多版本,最后成功的是参照(ref:http://embedonix.com/articles/image-processing/installing-opencv-3-1-0-on-ubuntu/),大部分是一样的,有一些报错的我自己修正了。

先要装一些依赖项,好像挺多人写的不一样的。我看过很多版本的教程,基本上所有教程一上来就都是这个,我应该都装过一遍了。所以,那个上面教程里写的那些依赖项会不会有缺少我也不是很清楚...

ref:http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


ref:http://embedonix.com/articles/image-processing/installing-opencv-3-1-0-on-ubuntu/

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


然后就是下载opencv了,这里有个很大的坑。

如果你出现了这样的错误:

error: ‘NppiGraphcutState’ has not been declared

你的opencv下错了...传说中好像opencv3不支持cuda8.0,所以要改。

1.有人是这么写的(ref: http://stackoverflow.com/questions/40051573/opencv-3-1-0-with-python-3-5):

mkdir ~/git
cd ~/git
git clone https://github.com/opencv/opencv.git
cd ./opencv
git checkout 3.1.0

cd ~/git
git clone https://github.com/Itseez/opencv_contrib.git
cd ./opencv_contrib
git checkout 3.1.0


2.也有人这么写(ref: http://embedonix.com/articles/image-processing/installing-opencv-3-1-0-on-ubuntu/):当然,这里面他是自己建了一个opt的文件夹,然后cd到了那个文件夹下。

/opt$ cd opencv
/opt/opencv$ git checkout 3.1.0
/opt/opencv$ cd /opt/opencv_contrib
/opt/opencv_contrib$ git checkout 3.1.0
/opt/opencv_contrib$ cd /opt/opencv


但是我比较奇怪,就是我的git checkout 3.1.0老是给我报错。就大概是说找不到文件路径之类的,截的图也找不到了。于是找了另外的方法,可以解决这个兼容问题(ref: http://www.linuxidc.com/Linux/2016-07/132860.htm)。

在path/to/opencv/modules/cudalegacy/src/graphcuts.cpp中,把

          #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改为

         #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION>=8000)

往下走。

/opt/opencv$ mkdir release
/opt/opencv$ cd release

/opt/opencv/release$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib/modules /opt/opencv/

这个地方要注意的是,他的路径载/opt/opencv所以才这么写的。像我的是载/home/aem/Downloads/opencv,我就用这个

/opt/opencv/release$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/aem/Downloads/opencv_contrib/modules /home/aem/Downloads/opencv/

然后,在这里要注意了。cd到你的release文件夹下面,执行

sudo gedit CmakeCache.txt ,看一下 (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION>=8000) 有没有后面那个。有的话再再release文件夹下执行:

/opt/opencv/release$ make
/opt/opencv/release$ sudo make install

这个地方有个问题,就是第一句,make。有人会写在后面加东西,比如 make -j8。我加了,跑的特别快,但是就没跑通过。今早起来脑子有点晕晕乎乎,就忘记加了,直接走的make,然后走了大半个小时,从家里回来之后就跑通了。

有人说gcc的问题,说版本太高。但是我没有改过gcc,有次改了报错,我也没生成软连接。但是不知道以后会不会有错...还有一个hdf5报错的问题.(ref: https://github.com/NVIDIA/DIGITS/issues/156)

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.8.0.2 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.8.0.2 libhdf5_hl.so

还是不行的话,再改一下MakeFile.config的尾巴后面加这个

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ and
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

再不行,试试这个

$ sudo ln -s /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.10 /usr/lib/x86_64-linux-gnu/libhdf5.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10 /usr/lib/x86_64-linux-gnu/libhdf5_hl.so


刚写到最后还有一丢丢赶去上课了,之前Part A 跟 Part B老师一个说自己的课very easy 和really simple我还不信。这个Part C的老师一来,真的是,飞的冲出外太空了。哎,要坚强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值