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

相关文章

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二