1、更换清华园,否则gtk2.0安装失败;血泪的教训,本来不想换的,折腾了老久还是未解决,直接更换源就可以顺利安装了。
参考链接:https://blog.csdn.net/la9998372/article/details/77886806
2、必须使用16G以上的卡,最好是class10以上,实测8G class6卡安装到35%就爆满了,推算安装完成要4.6G左右。
本例16G class4卡,默认初始系统镜像8G,初始占比就已经64%;
充分使用整个存储空间,使用命令:sudo raspi-config,7 高级选项,A1 拓展文件系统,extend到16G,
修改后,初始占比降低一半到了31%;
跟着下面教程走,最终安装完成后,空间占比高达73%,整整用了5G;
class4速度太慢了,sudo make,花时间最长,好几个小时,中间因为WiFi链接不稳定,ssh还终止过,实在不能忍。
3、强烈用HDMI或VNC直接在树莓派上装,千万不要用ssh,时间太久一旦断线又得重新编译过,血与泪的教训啊。
如果掉线或出错,删除release文件夹全部内容,再新建release,设置cmake编译参数:
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON ..
正式编译
// 编译,以管理员身份,否则容易出错
sudo make
// 安装
sudo make install
// 更新动态链接库
sudo ldconfig
技巧:运行cmake后,用ls查看release文件夹,确认有内容,
//返回文件夹opencv-3.4.1
cd ..
//备份release文件夹,出错后可直接删除release,把备份文件夹release1改回release即可避免重新运行cmake,节省时间
sudo cp -r release release1
4、规避掉前面的各种坑,再看 OpenCV3.4.1 安装参考教程,应该就能顺利安装了:
(树莓派、linux通用)OpenCV3源码方式安装教程(最新3.4.1)
5、案例测试
上面教程中的案例,一般都能通过,python大法好,但是测试其他C++的案例时就各种报错,
测试案例:
通过代码载入一张图片,通过opencv把彩色图片转换为黑白图片,并把原图和转换后的图片输出到屏幕中。
test.cpp
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main (int argc, char **argv)
{
Mat image, image_gray;
if (argc != 2 || !image.data)
{
cout << "No image data\n";
return -1;
}
cvtColor(image, image_gray, CV_RGB2GRAY);
namedWindow("image", CV_WINDOW_AUTOSIZE);
namedWindow("image gray", CV_WINDOW_AUTOSIZE);
imshow("image", image);
imshow("image gray", image_gray);
waitKey(0);
return 0;
}
makefile
INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目标文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可执行文件
TARGET = test
$(TARGET):$(OBJECTS)
g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
g++ -c $(SOURCES)
clean:
rm $(OBJECTS) $(TARGET)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
g++ -I $(INCLUDE) -o $@ -c $<
编译并执行,载入一张名为lena.jpg图片,图片和可执行文件test应在同一个目录中,
sudo make
sudo ./test lena.jpg
使用树莓派系统自带的编辑工具处理代码,复制粘贴是要注意,对比清楚,系统可能会自动加 #号或者有缺漏;
默认设置需要做相应修改,否则会出错:
编写这个文件的时候,9行12行前面用的是4个空格符,而不是tab,所以造成了操作符丢失的错误。只需把缩进的空格delete掉,然后按tab键用tab代替4个空格,问题就可能解决。
另外vim中Tab默认是8格,如果使用vim编辑,需要修改默认配置:
1. 打开设置文件:
sudo vim /etc/vim/vimrc
2. 在底部添加以下代码:
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
Tab修改为4格,即可正常使用tab代替4个空格。
由于才疏学浅留下的遗憾:
树莓派一直显示 no image data,并没有得到黑白图片,知道原因的可以在评论区交流下,不胜感激。
案例来源:
树莓派2+OpenCV环境搭建
https://blog.csdn.net/zx3517288/article/details/51706825