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

相关文章

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3