pcduino里,Qt无法打开摄像头(调用了opencv)

2023-12-23 06:58

本文主要是介绍pcduino里,Qt无法打开摄像头(调用了opencv),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


cvCaptureFromCAM(0)、cvCaptureFromCAM(-1)、cvCreateCameraCapture(0)、cvCreateCameraCapture(-1)、都试过了,都无法打开摄像头,但是cvCaptureFromAVI()可以打开视频。用guvcview可以打开摄像头。 请问 该怎么办?

#include <QtCore/QCoreApplication>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>
#include <sys/time.h>
#include <signal.h>


using namespace cv;
const char *cascade_name = "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml";//鑴搁儴璇嗗埆
//static CvHaarClassifierCascade *cascade = 0;
static CvHaarClassifierCascade *cascade = 0;
static CvMemStorage *storage = 0;
void detect_and_draw(IplImage *image);
int main(int argc, char *argv[])
{


    CvCapture *capture = 0;
    IplImage* newImg;
    IplImage *img;
    storage = cvCreateMemStorage(0);
    cascade = (CvHaarClassifierCascade*)cvLoad(cascade_name, 0, 0, 0);
    namedWindow("result",WINDOW_AUTOSIZE);
    //capture = cvCaptureFromAVI("capture.avi");
    capture = cvCreateCameraCapture(6);
    //capture = cvCaptureFromCAM(0);
    //sleep(200);
    while(1)
    {
        newImg = cvQueryFrame(capture);
        //if(!newImg)
        //  break;
        //img = cvCreateImage(cvSize(newImg->width/2, newImg->height/2), newImg->depth,newImg->nChannels);
        //cvResize(newImg,img);
        //缈昏浆鍥惧儚
        //cvFlip(img,img,1);
        //璋冪敤璇嗗埆鍜岀粯鍒跺浘鍍忕殑鍑芥暟
        //detect_and_draw(img);
        cvShowImage("result", newImg);
        char c = waitKey(33);
        if( 27 == c )
            return 0;
    }
    cvReleaseCapture(&capture);//閲婃斁鎽勫儚澶?
    cvDestroyWindow("result");//閿€姣佺獥鍙?}


void detect_and_draw(IplImage *image){
    //startTime = getCurrentTime();
    
    cvClearMemStorage(storage);


    int scale = 1;
    int i;
   CvPoint ptcenter;


  
    if(cascade){
     CvSeq *faces = cvHaarDetectObjects(image, cascade, storage, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING,
                                           cvSize(80, 80));
       
        for(i = 0; i<(faces ? faces->total : 0); i++){
            CvRect *r = (CvRect*)cvGetSeqElem(faces, i);
           ptcenter.x = (r->x + (r->width/2))*scale;
            ptcenter.y = (r->y + (r->height/2))*scale;
      cvCircle(image, ptcenter, (r->width + r->height)/4, CV_RGB(255,0,0), 3, 8, 0 );
        }
    }


    cvShowImage("result",image);//鏄剧ず鍥惧儚


}

这篇关于pcduino里,Qt无法打开摄像头(调用了opencv)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/527125

相关文章

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja