int stype = src.type(), sdepth = CV_MAT_DEPTH(stype), cn = CV_MAT_CN(stype);
从type中分离深度和通道数,type为CV_8UC1等
CV_MAKETYPE(ddepth, cn) 用深度和通道数组成type
# sudo apt-cache search 库
sudo apt-get install 具体名字的库
# anaconda操作手册
打开GUI面板,anaconda-navigator
安装anaconda后,使用conda init bash激活
conda info
conda install
conda create -n python36 python=3.6
pip 换源
在.pip/pip.conf中添加
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
pip search package
启动spyder: spyder
启动jupyter-notebook: jupyter-notebook
使用vs对应的命令行工具,这里使用x64
configure.exe -prefix C:\Qt\Qt4.8.7 -debug-and-release -no-qt3support -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-libtiff -no-libmng -no-dbus -no-nis -webkit -platform win32-msvc2015
configure.exe -prefix C:\Qt\Qt4.8.7 -debug-and-release -platform win32-msvc2015
configure.exe -prefix C:\Qt\Qt4.8.7\4.8.7\msvc2015_64 -debug-and-release -nomake demos -nomake examples -platform win32-msvc2015
nmake confclean
nmake install
cmake -G "NMake Makefiles" path
动态链接库debug和release版本名字一定要有区别,不然错误链接会出现各种莫名其妙的错误。
CMake配置时CMAKE_DEBUG_POSTFIX “d”
软件库版本号
msvc2015_64或者msvc2015
依赖库dll提取
1、dumpbin.exe /dependents TopVision3D.exe
在Qt Creator中集成自定义控件:
将生成的release版本的控件dll放入QtCreator\bin\plugins\designer目录中,要注意creator的编译版本,不然会链接不上。
if (tensorflow_OPTIMIZE_FOR_NATIVE_ARCH)
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_OPT_ARCH_NATIVE_SUPPORTED)
if (COMPILER_OPT_ARCH_NATIVE_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
else()
CHECK_CXX_COMPILER_FLAG("/arch:AVX" COMPILER_OPT_ARCH_AVX_SUPPORTED)
if(COMPILER_OPT_ARCH_AVX_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX")
endif()
endif()
endif()
# 添加的就是以下部分:
else()
CHECK_CXX_COMPILER_FLAG("/arch:AVX" COMPILER_OPT_ARCH_AVX_SUPPORTED)
if(COMPILER_OPT_ARCH_AVX_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX")
endif()
提取软件依赖dll,可用网上找到的3个bat脚本。不过该脚本利用dumpbin工具只能探测跟软件直接相关的dll,dll再依赖的dll就不探测了,所以使用有限。
1-Qt软件dll相关依赖提取:用Qt命令行工具windeployqt *.exe,即可获得Qt依赖库。其它的额外库,依次加入即可。
2-使用procexp.exe可以查看*.exe所有的依赖项dll,根据相关信息手动将dll添加到bin目录。
3-目录 XXX
|——bin
|——Configs
|——…
按软件发布目录,利用setup factory工具制作安装包。
DIR *.* /B >file_name.txt
sudo apt-get install libopencv-dev libopencv-contrib-dev
sudo apt-get install libvtk6-dev libvtk6-qt-dev
sudo apt-get install libpcl-dev
sudo chown <你系统当前的登陆用户名> -R /dev/kvm 更改权限
在AndroidManifest.xml添加
<!-- SD卡读写权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAG" />
<application
...
android:requestLegacyExternalStorage="true"> <!-- 添加此行 -->
</application>
注意:程序编译好后在手机上运行时需要在手机设置中开启读写权限,这是很关键的一步。
C++模板都要放在头文件中,不能将实现放到cpp文件,不然编译报错
warning C4251: XXX 需要有 dll 接口由 XXX 的客户端使用