请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

EasyAR 教程

EasyAR 教程

1 人已关注

EasyAR引擎使用教程,使用案例。

精选帖子

Camera Preview没有显示

[复制链接]

1

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
0569 yubaoliu 发表于 2017-1-13 18:56:58
x64 win10中,调用open后,Camera指示灯亮了,但没有显示preview视图,调用start之后也没有显示。

#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <conio.h>
#include "easyar/utility.hpp"
#include "easyar/imagetarget.hpp"
#include "easyar/image.hpp"
#include "easyar/camera.hpp"
#include "easyar/imagetracker.hpp"
#include "easyar/augmenter.hpp"
#include "easyar/frame.hpp"
#include "easyar/target.hpp"
#pragma comment(lib,"EasyAR.lib")
using namespace std;
using namespace EasyAR;
int main()
{
        AugmentedTarget augmentTarget;
        Augmenter augmenter;
        CameraDevice cameraDevice;
        ImageTracker tracker;
        ImageTarget target;
        if (!initialize("tqn0tZt8ixgPS7n5lr8roGjatFJub3eDq6qI6bpABardEeGj90imbhJPjWj43Z1HEdg3P3R5cJTqOz7gI1QVOP8s6sod3tbVA3nE8ea892745534c440516acbe2d172870eegZCHZYSkjgRcwbKSJmJguPcU0avGbUTrfA98DahMot0nkKBrVKyRuJM6BStwNSLoSXr"))
        {
                cout << "Initialize failed!"<<endl;
        }
        //configure camera
       
        if (!cameraDevice.open(CameraDevice::Device::kDeviceDefault))
        {
                cout << "Open camera failed!" << endl;
        }
        //cameraDevice.setSize(Vec2I(1280, 720));
        Vec2I frameSize = cameraDevice.size();
        if (cameraDevice.isOpened())
        {
                if (frameSize[0] == 0 || frameSize[1] == 0)
                {
                        cout << "Camera error" << endl;
                        return -1;
                }
                cout << "frameSize: " << frameSize[0] << "*" << frameSize[1] << endl;
        }
        else {
                cout << "Camera not opened" << endl;
        }
        cameraDevice.cameraCalibration();

        cameraDevice.setFocusMode(CameraDevice::kFocusModeContinousauto);
        //add image tracker
        if (!tracker.attachCamera(cameraDevice))
        {
                cout << "Add camera device to tracker failed" << endl;
        }
        tracker.setSimultaneousNum(1);
        //add target image
        std::string jstr="{\n"
                        "        \"images\"        :\n"
                        "        [\n"
                        "                {\n"
                        "                        \"image\"        :        \"screen.png\",\n"
                        "                        \"name\" : \"screen\"\n"
                        "    }\n"
                        "  ]\n"
                        "}";
        if (!target.load(jstr.c_str(), EasyAR::kStorageAssets | EasyAR::kStorageJson))
        {
                cout << "Add target image failed" << endl;
        }
        int id = target.id();
        cout << "image id: " << id << endl;
        const char* imageName = target.name();
        cout << "image name: " << imageName << endl;
        tracker.loadTargetBlocked(target);
        if (!tracker.start())
        {
                cout << "tarcker is not starting" << endl;
        }
       
        if (!augmenter.attachCamera(cameraDevice))
        {
                cout << "Attach camera to augmenter failed" << endl;
        }
        augmenter.chooseAPI(EasyAR::Augmenter::API::kAugmenterAPIGL);
        augmenter.setViewPort(Vec4I(0, 0, 1280, 720));
       
        if (!cameraDevice.start())
        {
                cout << "Start to capture the frame failed!" << endl;
        }
。。。。。

Result:
EasyAR Version 1.3.1
frameSize: 640*480
image id: 1
image name: screen
frame image's size 0 * 0
Status: kTargetStatusUndefined
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表