1.ubuntu 18.04 安装opencv3.4.5+opencv_contrib
2.开发Electron,源码不小心接触到C++,下载经过一周多的源码时间终于摸索出
3.NodeJS Imagemin
4.php-fpm无法执行exec中的命令问题(附解决方案)
5.概述在Linux下编译安装OpenCV的步骤
6.ComicsViewer附录A
ubuntu 18.04 安装opencv3.4.5+opencv_contrib
本文详细介绍了在Ubuntu .上安装OpenCV 3.4.5及OpenCV_contrib的步骤与注意事项。在安装过程中,下载确保OpenCV与OpenCV_contrib版本一致是源码关键,下载OpenCV的下载源码和开源码源代码时推荐使用zip格式。以下为安装流程:
1. **下载安装包**:
- 访问OpenCV官网下载OpenCV的源码源代码。
- 从GitHub下载OpenCV_contrib。下载
- 特别注意,源码选择OpenCV_contrib时可选择zip或tar.gz格式,下载建议直接下载zip包。源码
2. **安装依赖**:
- 执行`sudo apt-get update`和`sudo apt-get upgrade`以更新系统及依赖。下载
- 安装基本的源码开发工具,如`build-essential`、下载`cmake`、源码`git`、`libgtk2.0-dev`等。
- 安装其他特定的依赖包,包括用于图像处理的工具和开发工具,如`libjpeg-dev`、`libpng-dev`、`libtiff-dev`、`qt5-default`等。
3. **解决可能遇到的问题**:
- 遇到`libjasper-dev`安装失败时,可通过添加安全源、更新源列表、安装依赖包(`libjasper1`)等步骤解决问题。股市强势指标源码
4. **安装OpenCV和OpenCV_contrib**:
- 将下载的包解压至用户目录下。
- 在解压的OpenCV目录中创建`build`文件夹。
- 进入`build`文件夹并执行`cmake`命令配置,记得指定参数如`CMAKE_BUILD_TYPE=Release`、`CMAKE_INSTALL_PREFIX=/usr/local`、`OPENCV_EXTRA_MODULES_PATH`等。
5. **解决可能遇到的其他问题**:
- 遇到ippicv和`face_landmark_model.dat`下载失败,可直接从提供的链接下载文件,然后替换配置文件中的下载路径。
6. **解决错误并生成**:
- 遇到错误如`boostdesc_bgm.i`文件缺失,需下载并放置到指定目录。
7. **安装与配置**:
- 执行`sudo make`编译,并使用`sudo make install`安装OpenCV。
- 添加OpenCV库到系统环境变量,确保OpenCV的pkgconfig文件和库路径可被系统识别。
8. **测试**:
- 使用qt进行测试,确保OpenCV安装正确无误,如能成功打开摄像头即证明安装成功。
完成以上步骤后,OpenCV 3.4.5及OpenCV_contrib在Ubuntu .上便成功安装。整个过程涉及了依赖安装、文件配置、错误解决等多个步骤,需要用户仔细按照步骤执行,确保每个环节的正确性,以顺利完成安装。数钱小程序源码
开发Electron,不小心接触到C++,经过一周多的时间终于摸索出
研究开发Electron过程中,发现程序在Windows环境下运行无误,但在Linux和macOS系统中遇到问题,主要源于依赖的第三方插件只提供exe程序。为了解决这一问题,开始探索如何使用C++等源码编译出适用于Windows、Linux、macOS的二进制应用程序。
经过一周的学习与实践,终于掌握如何编译Linux和Windows应用程序,但尚未精通在单一系统环境下编译出Windows、Linux、macOS兼容的程序。当前主要涉及交叉编译技术,正深入研究以期获得完整流程,以便后续发布相关教程。
开始准备工具,包括Windows 操作系统、CMake、Visual Studio 等。学习过程分为几个步骤:下载并解压libpng-1.6.源码,查看依赖zlib的版本信息,下载zlib-1.2.8源码,编译生成debug和release版本的河南到江苏源码静态链接库,并复制zlib-1.2.8/build/zconf.h文件到zlib-1.2.8目录下。随后,使用CMake编译libpng-1.6.,并生成适用于Windows和Linux的静态链接库。同样,遵循上述流程完成mozjpeg-4.0.3的编译。
对于使用MinGW编译的疑问,通过CMake GUI选择“MinGW Makefile”进行配置,等待配置完成并生成Makefile后,在命令行中执行相应的make命令。如果编译出的exe文件无法单独使用,需确保程序依赖的dll文件与exe文件放在同一目录,或使用.xxx-static.exe的命名格式,确保程序正常运行。
NodeJS Imagemin
imagemin是常用的NodeJS压缩库,支持多种插件,包括有损和无损压缩。其用法简单直接,但安装过程中可能出现一些问题,特别是在 CentOS 系统上。
在安装过程中,首先安装imagemin本身,这通常不会出现问题。接着,安装用于压缩PNG的插件imagemin-pngquant时,会遇到依赖底层读写PNG的游戏项目源码大全跨平台库libpng-dev的错误。在CentOS上,可以使用rpm -qa |grep libpng命令检查该库是否已安装,如果没有,则需要通过yum install libpng-devel进行安装。
安装libpng-dev之后,再次尝试安装imagemin-pngquant,仍会遇到错误“Error: pngquant failed to build, make sure that libpng-dev is installed”。进一步的排查发现,问题可能是由yum安装的libpng-devel版本过低,不兼容pngquant-bin提供的源码版本所导致的。
解决这一问题有两种方法。第一种是升级libpng-devel的版本,但这并非推荐做法,因为这可能会依赖于GLIBC版本,而GLIBC是Linux系统底层API,几乎所有运行库都依赖于它,并且它提供了许多必要的功能实现。这种升级操作可能会导致严重问题。第二种方法是手动安装pngquant(一个使用C语言编写的PNG压缩开源库),在CentOS中,需要先安装epel-release包,然后通过yum安装pngquant。安装完成之后,使用pngquant --version查看版本信息,并在pngquant-bin的安装代码中去除编译安装失败时终止进程的逻辑,发布一个名为pngquant-bin-no-exit的npm包。
接着,对于依赖pngquant-bin-no-exit的插件imagemin-pngquant,同样需要创建一个名为imagemin-pngquant-no-exit的npm包,这样可以避免安装原始的imagemin-pngquant。最后,引入imagemin-pngquant-no-exit进行使用即可。
对于其他imagemin插件安装失败时,同样可以采用上述方法解决,例如用于压缩JPG的imagemin-mozjpeg插件。这些插件通常依赖于特定的C语言编写的压缩库,如mozjpeg,与PNG压缩插件不同。另外,mozjpeg不能通过yum安装,需要下载源代码进行编译安装。编译完成后,可以在/opt/mozjpeg/bin目录下找到对应的二进制可执行文件。
虽然整个安装过程可能没有完全成功,但通过上述步骤,可以确保程序的正常运行。只需对引入的代码稍作修改即可。
php-fpm无法执行exec中的命令问题(附解决方案)
因为有些浏览器不支持webp格式,需要将webp格式的转换为png。为此需要安装dwebp转换工具。最开始采用源码编译安装,源码下载地址点击此处。可能需要先安装一些依赖库:yuminstalllibjpeg-devlibpng-devlibtiff-devlibgif-devtarzxvflibwebp-1.2.0.tar.gzcdlibwebp-1.2.0./configuremakemakeinstall在命令行下可以正确执行
dwebpxxx.webp-oxxx.png在phpcli命令行模式下也可以正确执行:
<?php$shell="dwebpxxx.webp-oxxx.png";$output=array();$return='';exec($shell,$output,$return);返回的$return为0,表示没有错误,命令正常执行。
但是在php-fpm模式下,始终无法得到转换的png,而且$return为,表示无法找到命令。改成绝对路径也同样返回
$shell="/usr/bin/dwebpxxx.webp-oxxx.png";而且php.ini中的safe_modes=off,disable_functions中也没有exec调用。查阅资料提示可能需要yum安装dwebp,但是我的系统版本centos6.5,国外yum源很多无法访问,最后将CentOS-Base.repo改为如下:
[base]name=CentOS-6failovermethod=prioritybaseurl=https://vault.centos.org/6.5/os/x_/gpgcheck=0yuminstalllibwebp-develyuminstalllibwebp-tools然后php-fpm中可以正常执行exec("dwebp..."),将webp转为png格式。
概述在Linux下编译安装OpenCV的步骤
OpenCV是一个计算机视觉库,支持Windows、Linux、MacOS等操作系统。在Linux环境中安装OpenCV主要涉及源码编译。官网的下载链接为opencv.org/releases.htm...
选择最新版本3.2.0,Linux用户需下载zip格式源码。安装所需的软件包包括GCC 4.4.x或更高版本,CMake 2.8.7或更高,Git,GTK+2.x或更高(包括headers),pkg-config,Python 2.6或更高版本及Numpy 1.5或更高版本的开发包,ffmpeg或libav的开发包:libavcodec-dev,libavformat-dev,libswscale-dev。可选包有libtbb2和libtbb-dev,libdc 2.x,libjpeg-dev,libpng-dev,libtiff-dev,libjasper-dev,libdc--dev,CUDA Toolkit 6.5或更高版本。这些包通过apt-get命令直接安装,打开终端,输入相关命令即可。安装完毕后,在解压后的opencv-XXX目录内建立build文件夹,编译的makefiles、project files、object files和output files存放于此。
开始编译,只需三行命令:配置、build和安装。配置命令为:$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local 。。参数CMAKE_BUILD_TYPE表示构建类型,有Release和Debug两种;CMAKE_INSTALL_PREFIX指定安装目录,一般为/usr/local。可选参数包括BUILD_DOCS和BUILD_EXAMPLES,前者构建文档,后者构建所有示例。若配置命令无法执行,去掉-D后面的空格。build命令为:make -j7,使用7个线程加速编译。安装命令为:sudo make install。
至此,Linux环境下成功安装OpenCV。为了验证Python环境中的使用情况,可以尝试运行一段代码:读取并显示。代码如下:import cv2image = cv2.imread(“logo.png”, 1)cv2.imshow(“Hello, world!”, image)cv2.waitKey(0)cv2.destroyAllWindows()若在运行时遇到错误,请检查路径是否改为绝对路径。成功运行后,将看到显示的。
ComicsViewer附录A
本程序在JPEG解码/编码方面采用的是Independent JPEG Group(独立JPEG小组)发布的JPEG LIB源代码,ZIP文件处理则采用了Info-ZIP提供的源代码,RAR文件处理使用了与WinRAR 3.0解码能力相当的UnRAR源代码。PNG文件支持来自libpng组织提供的libpng源代码,TIFF文件的支持则利用了libtiff组织提供的libtiff源代码。关于文件格式的讨论,读者可参考ComicEnhancer Pro使用说明书的相关部分。
在放大处理方面,本程序采用了Davide Pizzolato的CxImage中提到的bicubic、nearest算法实现,同时我们优化了插值公式和运算速度,使其达到可接受的程度。有关放大算法的讨论,详情请见ComicEnhancer Pro使用说明书中的“密技曝光”部分。
为了实现时钟的绘制效果,本程序采用了PJ Naughter的CClockCtrl代码,通过修改后的代码支持了半透明效果。而这一半透明效果则是借鉴了chen huasheng的A transparent clock和CHECK ON WORK ATTENDANCE。在此,我们对所有贡献者表示诚挚的感谢。