Qt中调用OpenCV函数库时Crashed问题的解决。

              这几天想在虚拟机上搭建Ubuntu的开发环境,包括了Matlab和QT(C++)的开发工具安装等,同时由于做图像处理,所以还必须要安装FFMPEG和OpenCV库。下面就讲讲我们安装时出现qt中调用OpenCV库时奔溃的问题。

            1、我首先安装了ffmpeg(matlab中一个测试程序视频写出需要它,所以先安装了它),然后在安装QT(建议不要使用源安装),最后再安装OpenCV。安装中虽然遇到些问题,但是都通过查找解决了,但是最后再 qt中测试OpenCV时,程序在启动时发生crashed,通过网络查找确定不是pro文件配置的问题及系统变量的问题。不过有思路就是可能opencv库编译的时候没有搜索到qt路径,因此再次执行下面命令时

           1.1 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON

               查看打印信息找不到qt的路径,因此根据网络资料修改为

           cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON  -D Qt5Concurrent_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Concurrent" -D Qt5Core_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Core" -D Qt5Gui_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Gui" -D Qt5OpenGL_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5OpenGL" -D Qt5Test_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Test" -D Qt5Widgets_DIR="/opt/Qt5.7.0/5.7/gcc_64/lib/cmake\Qt5Widgets" ..

                红色部分为新添加信息,再次执行cmake,得到的编译链接库在Qt调用中成功。

          1.2 但是在测视频文件时,发现无法打开,并且我的vlc播放器也无法正常工作了,然后重新执行上面的命令,查看到打印信息中ffmpeg,结果为下:

--     FFMPEG:                  NO
--       codec:                     NO
--       format:                    NO
--       util:                          NO
--       swscale:                  NO
--       resample:                NO
--       gentoo-style:           YES

         解决办法是找到ffmpeg的安装路径,lib文件夹下有pkgconfig, .pc文件位置是opencv需要知晓的信息
,因此讲PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig信息添加到 /etc/environment文件中,然后执行下面的命令:

            source /etc/environment

           然后按照一般方式进行安装,生成的动态链接库在QT中调用视频时可正常工作。

          参考链接:

          http://www.linuxdiyf.com/linux/13355.html

          http://jingyan.baidu.com/article/db55b609a3f6274ba30a2fb8.html

          http://answers.opencv.org/question/59322/could-not-find-a-package-configuration-file-provided-by-qt5core/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用C++语言调用OpenCV函数库调整图像色阶的步骤如下: 1. 导入OpenCV库。使用如下代码导入OpenCV库: ```cpp #include <opencv2/opencv.hpp> using namespace cv; ``` 2. 读取图像。使用OpenCV的imread函数读取图像: ```cpp Mat srcImage = imread("test.jpg"); ``` 3. 转换图像格式。为了方便后续处理,需要将读取到的图像转换为浮点型格式: ```cpp Mat srcImage_float; srcImage.convertTo(srcImage_float, CV_32FC3); ``` 4. 调整图像色阶。使用OpenCV的convertScaleAbs函数调整图像色阶: ```cpp float alpha = 1.5; float beta = 50; Mat dstImage; convertScaleAbs(srcImage_float, dstImage, alpha, beta); ``` 其,alpha和beta分别为缩放系数和平移量,可以根据实际需求进行调整。 5. 显示图像。使用OpenCV的imshow函数显示调整后的图像: ```cpp imshow("dstImage", dstImage); waitKey(0); ``` 完整的代码如下: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat srcImage = imread("test.jpg"); Mat srcImage_float; srcImage.convertTo(srcImage_float, CV_32FC3); float alpha = 1.5; float beta = 50; Mat dstImage; convertScaleAbs(srcImage_float, dstImage, alpha, beta); imshow("dstImage", dstImage); waitKey(0); return 0; } ``` 注意,使用OpenCV进行图像处理,需要保证图像格式一致,比如在本例,原始图像和转换后的图像均为三通道浮点型格式。另外,需要注意图像的色彩空间,比如灰度图像只有一个通道,需要使用CV_8UC1格式表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值