opencv debug版本在linux下编译,并写了一个DEMO

时间:2022-12-18 14:45:00

用如下方法编译opencv:

git clone "https://github.com/opencv/opencv.git"

mkdir opencv_debug

cd opencv

mkdir build

cd build

cmake ..

#查看编译选项

cmake -LA | awk '{if(f)print} /-- Cache values/{f=1}'

#我的编译选项(其实反复了很多次)

/usr/local/bin/cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/data/ahfuzhang/install_packages/opencv_debug/ -DBUILD_SHARED_LIBS=OFF -DBUILD_WITH_DYNAMIC_IPP=OFF -DWITH_IPP=OFF -DBUILD_IPP_IW=OFF -DBUILD_ITT=OFF -DBUILD_JAVA=OFF -DBUILD_PROTOBUF=OFF -DBUILD_TESTS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DWITH_CUDA=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_PROTOBUF=OFF -DWITH_OPENEXR=OFF -DWITH_JASPER=OFF -DWITH_PNG=OFF -DWITH_WEBP=OFF

make -j20  #我核多,土豪

make install

写了如下一个计算图像直方图的程序:

//image_hist.cpp
#include <iostream>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp> using namespace cv;
using namespace std; int main( int argc, char** argv )
{
if (argc<2){
printf("usage:%s <img>\n", argv[0]);
return -1;
}
Mat img = imread(argv[1], IMREAD_UNCHANGED);
if (img.data==NULL){
printf("read file fail\n");
return -1;
}
int channels[] = {0};
int histSize[] = {256, 1};
float _ranges[] = { 0, 256 };
const float* ranges[] = {_ranges};
Mat hist;
calcHist(&img, 1, channels, Mat(), hist, 2, histSize, ranges, true, false);
for (int i=0; i<256; ++i){
int count = (int)hist.at<float>(i, 0);
printf("%d ", count);
}
return 0;
}  

编译:

g++ -o image_hist.o -c image_hist.cpp -g -I"/data/ahfuzhang/install_packages/opencv_debug/include/opencv4/" -std=c++11

链接:

g++ -o image_hist image_hist.o -L"/data/home/ahfuzhang/install_packages/opencv_build/lib64/" -lopencv_calib3d  -lopencv_features2d -lopencv_flann -lopencv_gapi -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_videoio -lopencv_core -lrt -lpthread -ldl -lz  "/usr/lib64/liblapack.so.3.4.2" -lopenblas "/usr/lib64/libjpeg.so.62.1.0" "/usr/lib64/libtiff.so.5.2.0"

运行:

./image_hist 1.jpg
read file fail

DEMO并未运行成功,网上搜了是库的问题,等下继续解决!

opencv debug版本在linux下编译,并写了一个DEMO的更多相关文章

  1. Linux下编译Qt源码,一定要下载tar&period;gz版本,否则会报权限不足

    首先下载qt-everywhere-opensource-src-4.8.1源码,下载地址: ftp://ftp.qt-project.org/qt/source/ 在Linux下编译一定要下载qt- ...

  2. linux下编译qt5&period;6&period;0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  3. Linux 下编译、安装、配置 QT

    转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...

  4. Linux 下编译Android-VLC开源播放器详解(附源码下载)

    这两天需要做音视频播放相关的东西,所以重新找了目前android下的解码库.Android自带的解码库支持不全,因此很多第三方播放器都是自带解码器,绝大部分都是使用FFMpeg作为解码库.我11年的时 ...

  5. linux下编译qt5&period;6&period;0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  6. linux下编译qt5&period;6&period;0静态库(使用&period;&sol;configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt&period;conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  7. linux下编译gcc6&period;2&period;0

    linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...

  8. LINUX下编译安装PHP各种报错大集合

    本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...

  9. linux下编译安装vim7&period;4并安装clang&lowbar;complete插件

    linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...

随机推荐

  1. C&plus;&plus;虚方法(虚函数)随笔

    本文不讨论虚函数的原理,只简单总结下虚函数的常用事项. 虚函数(虚方法)是C++动态联编 实现多态的重要手段,在函数声明时使用关键字virtual即可,如: virtual void func(voi ...

  2. javaweb项目打包成war包

    从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...

  3. Oracle 数据库优化-分析现有的sql

    在做数据库sql优化时,首先要对现有的数据库sql进行优化,主要包括以下几种: 1.数据库正在执行的SQL是? 2.已经执行过得SQL是? 3.最耗时的的前几条SQL是? 4.最耗IO的SQL是? 5 ...

  4. Linux内核:sk&lowbar;buff解析

    sk_buff 目录 1 sk_buff介绍 2 sk_buff组成 3 struct sk_buff 结构体 4 sk_buff成员变量 4.1 Layout布局 4.2 General通用 4.3 ...

  5. toString

    在java中使用toString: 如果在Java在输出定义一个Person类 然后实例化person  per 直接用system.out.println(per);无法得到我们想要的实例化内容 p ...

  6. Hadoop相关基础知识

    因为个人对这块的知识也不熟悉,所以大多内容来源于网络. 1.      Hadoop项目框架 2.      Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以 ...

  7. 发布WebApi项目时包含XML文档文件

    Open your publishprofile (*.pubxml) and include this code into "Project" element: <Item ...

  8. PHP微信公共号自定义菜单。

    /**微信生成菜单 * [addMennu description] */ public function addMennu(){ $token = $this->getToken(); $ur ...

  9. oracle数据库连接错误解决办法

    ORA-28547 连接服务器失败,可能是Oracle Net 管理错误 原文地址:http://www.linuxidc.com/Linux/2014-11/109686.htm 上周去给客户培训O ...

  10. 【Codeforces】Round &num;488 &lpar;Div&period; 2&rpar; 总结

    [Codeforces]Round #488 (Div. 2) 总结 比较僵硬的一场,还是手速不够,但是作为正式成为竞赛生的第一场比赛还是比较圆满的,起码没有FST,A掉ABCD,总排82,怒涨rat ...