小编Ale*_*xey的帖子

从数组构造向量

表明我可以从数组构造一个向量,如下所示:

// the iterator constructor can be used to construct from arrays:
int myints[] = {16,2,77,29};
vector<int> myvector (myints, myints + sizeof(myints) / sizeof(int) );
Run Code Online (Sandbox Code Playgroud)

为什么构造函数的第二个参数myints + sizeof(myints) / sizeof(int)

c++ stdvector

6
推荐指数
1
解决办法
3924
查看次数

如何检查OpenCV是否使用TBB,CUDA或Qt支持进行编译?

如何确定OpenCV库是否在Windows 7计算机上使用TBB或CUDA或QT进行编译?我应该使用依赖性walker,如果是,那怎么办?还是有另一种方法可以找到答案吗?

windows opencv

6
推荐指数
2
解决办法
3992
查看次数

如何实现 cv::Mat 对象(OpenCV)的循环缓冲区?

我正在尝试为我的程序实现一个循环缓冲区。缓冲区用于在两个线程之间共享数据,如下所示。我使用 OpenCV 从相机(线程 1)抓取视频帧。然后我想将这些数据存储在一个循环缓冲区中,以便线程2可以从缓冲区中获取数据。

在此处输入图片说明

如何cv::Mat在 C++ 中为对象实现循环缓冲区?我知道如何为标准 C++ 对象(如intchar)创建循环缓冲区,但我无法使其与类型的对象一起使用cv::Mat

有什么建议?

c++ buffer opencv circular-buffer

5
推荐指数
1
解决办法
6093
查看次数

Matlab图中更新图像对象的快速方法

我需要在Matlab图形中尽快显示更新的图像。每个图像都会被处理然后显示。但是,彩色图像的显示速度相当慢。例如,当我运行以下代码时

videoObj = VideoReader('sample.avi');
nFrames = videoObj.NumberOfFrames;
h = videoObj.Height;
w = videoObj.Width;
mov(1:nFrames) = struct('cdata', zeros(h, w, 3, 'uint8'), 'colormap', []);
for k = 1 : nFrames
    mov(k).cdata = read(interObj, k);
end

tic
for i=1:nFrames
    frame = mov(i).cdata;
    image(frame);
    drawnow;
end
secPerFrame = toc/nFrames
Run Code Online (Sandbox Code Playgroud)

secPerFrame = 0.012更新每一帧需要几秒钟。其中每帧是640x480像素RGB图像。因此,如果我想以每秒30帧的速度处理视频流,那么0.033 - 0.012 = 0.021在减去与图像显示相关的开销后,实际的图像处理仅剩下“ 几秒钟”的时间。

有没有一种更快的方法来更新Matlab中的图像对象?

matlab image-processing

5
推荐指数
1
解决办法
6780
查看次数

Swagger客户端codegen不包含可选方法

我正在使用swagger codegen(在这个Zoura swagger上)来创建一个Java/rest模板客户端.我正在使用swagger Gradle插件:

id "org.hidetake.swagger.generator" version "2.11.0"
Run Code Online (Sandbox Code Playgroud)

这是它的配置:

{
  "library": "resttemplate",
  "dateLibrary": "java8",
  "hideGenerationTimestamp": true,
  "modelPackage": "zuora.model",
  "apiPackage": "zuora.api",
  "invokerPackage": "zuora",
  "clientPackage" : "zuora.client"
}
Run Code Online (Sandbox Code Playgroud)

客户端确实生成了,但即使有许多可选字段,它们也不会被创建,并且一切都是必需的.我错过了什么吗?

resttemplate zuora swagger-codegen

5
推荐指数
1
解决办法
655
查看次数

如何在OpenCV中使用gpu :: Stream?

OpenCV具有gpu::Stream封装异步调用队列的类.某些函数具有附加gpu::Stream参数的重载.除了gpu-basics-similarity.cpp示例代码之外,OpenCV文档中关于如何以及何时使用的信息非常少gpu::Stream.例如,(对我而言)不清楚究竟是什么gpu::Stream::enqueueConvertgpu::Stream::enqueueCopy做什么,或者如何使用它gpu::Stream作为额外的过载参数.我正在寻找一些类似教程的概述gpu::Stream.

c++ opencv gpgpu

4
推荐指数
1
解决办法
1万
查看次数

使用shared_ptr启动std :: thread

构造新线程时,将提供的函数对象复制到属于新创建的线程的存储中.我想在新线程中执行对象方法.不应复制该对象.所以我将shared_ptr对象传递 给std::thread构造函数.如何使用std::shared_ptr()对象启动新线程?例如

class Foo {
public: 
    void operator()() {       
        // do something
    }    
};

int main() {
    std::shared_ptr<Foo> foo_ptr(new Foo);

    // I want to launch a foo_ptr() in a new thread
    // Is this the correct way?
    std::thread myThread(&Foo::operator(), foo_ptr.get());  
    myThread.join();     
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

4
推荐指数
2
解决办法
2692
查看次数

灰度图像中的MATLAB像素值

说,我有一个RGB图像rgb和一个空间坐标列表coords.我想在空间坐标中提取像素值,例如,[x1 y1],[x2 y2],和[x3 y3].对于RGB图像,我可以使用:

rgb = imread('sample.jpg')
coords = [x1 y1; x2 y2; x3 y3];
pixelData = impixel(rgb, coords(:,1), coords(:,2));
Run Code Online (Sandbox Code Playgroud)

返回指定图像像素的红色,绿色和蓝色值.

impixel仅适用于彩色(RGB)图像.但我想从灰度图像中提取像素值I.我可以使用for如下循环来完成

for i = 1:size(coords,1)
    pixelData(i,:) = I(coords(i,2), coords(i,1));
end
Run Code Online (Sandbox Code Playgroud)

我想避免使用for循环.还有另一种方法来实现这一目标吗?

imstats = regionprops(mask, I,'PixelValues');也有效,但我首先需要一个图像mask.

matlab image-processing

3
推荐指数
1
解决办法
7069
查看次数

OPENCV waitKey()方法返回类型

我正在尝试使用在线教程学习OPENCV用于图像处理项目.

opencv文档说waitKey()返回一个int.这应该是按下的键的ASCII值.但大多数在线教程使用以下编译并运行良好的代码.

if ( (char)27==waitKey(1) ) break;

这表明waitKey返回一个char而不是int.有人可以解释一下吗?

c++ opencv image-processing

3
推荐指数
1
解决办法
2万
查看次数

中断提升线程

我希望能够按如下方式中断线程.

void mainThread(char* cmd)
{   
    if (!strcmp(cmd, "start"))
        boost::thread thrd(sender); //start thread

    if (!strcmp(cmd, "stop"))
        thrd.interrupt();       // doesn't work, because thrd is undefined here

}
Run Code Online (Sandbox Code Playgroud)

thrd.interrupt()是不可能的,因为当我尝试中断thrd对象时,它是未定义的.我怎样才能解决这个问题?

c++ multithreading boost boost-thread

2
推荐指数
1
解决办法
879
查看次数

上课不正常

我仍在尝试学习课程,但我创建了这个,我似乎得到了一些奇怪的数字,如记忆编号或某些东西,我无法弄清楚什么是错的.

#include <iostream>
#include <string>
using namespace std;

class JoesClass {
public:
    int setAge(int age) {       
        return age;
    }

    void displayAge() {
        cout << "your age is " << age << endl;  
    }
private:
    int age;
};

int main()
{
    JoesClass newobject;
    newobject.setAge(40);
    newobject.displayAge();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ class

1
推荐指数
1
解决办法
59
查看次数

反转字符串c ++时出现访问冲突错误

可能重复:
为什么在写入字符串时会出现分段错误?

以下简单函数应该反转字符数组.

void reverse(char* str)
{
    char* last = str;

    // find end of the string
    while(*last) {
        ++last;
    }

    // swap characters until the pointers meet in the middle
    while(str < last)
    {
        --last; 
        char temp = *str;
        *str = *last;
        *last = temp;
        ++str;
    }
}

int main()
{
    char* a= "Hello";
    reverse(a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

代码编译.但它会引发有关访问冲突的运行时错误.根据调试器,罪魁祸首是以下行:

char temp = *str;
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会发生?

c++ char

0
推荐指数
1
解决办法
716
查看次数

由于头文件中的语法错误而导致编译错误

我有一个程序依赖于多个包含文件。当我按照下面所示的顺序定义包含时,程序可以正常编译。

#include <iostream>
#include "opencv2/cvconfig.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/internal.hpp" // For TBB wrappers
#include "arrayfire.h"
Run Code Online (Sandbox Code Playgroud)

但是,当我切换最后两个包含时,如下所示

#include <iostream>
#include "opencv2/cvconfig.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "arrayfire.h"
#include "opencv2/core/internal.hpp" // For TBB wrappers
Run Code Online (Sandbox Code Playgroud)

我收到编译器错误:

1>d:\libraries\tbb41\tbb41_20130613oss\include\tbb\task.h(765): 错误 C2059: 语法错误: '{' 1>d:\libraries\tbb41\tbb41_20130613oss\include\tbb\task.h( 765): 错误 C2334: '{' 之前的意外标记;跳过明显的函数体

这是出乎意料的,我想解决它。所有包含内容均来自库(OpenCV 和 ArrayFire)。关于可能的原因以及如何解决此问题有什么建议吗?

编辑这是task.h的相关部分:

759 #if __TBB_TASK_GROUP_CONTEXT
760    //! This method is deprecated and will be removed in the future.
761    /** Use method group() instead. **/
762    task_group_context* context() {return prefix().context;} …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors include arrayfire

0
推荐指数
1
解决办法
2643
查看次数