小编M.K*_*.K.的帖子

opencv从相机数据创建mat

在我的程序中,我有从摄像机获取图像的功能,应该将所有数据打包在OpenCV Mat结构中.从相机我得到宽度,高度和unsigned char*图像缓冲区.如果我有全局Mat变量,我的问题是如何从这些数据创建Mat.Mat结构的类型我采用了CV_8UC1.

Mat image_;

function takePhoto() {
    unsigned int width = getWidthOfPhoto();
    unsinged int height = getHeightOfPhoto();
    unsinged char* dataBuffer = getBufferOfPhoto();
    Mat image(Size(width, height), CV_8UC1, dataBuffer, Mat::AUTO_STEP);

    printf("width: %u\n", image.size().width);
    printf("height: %u\n", image.size().height);

    image_.create(Size(image.size().width, image.size().height), CV_8UC1);
    image_ = image.clone();

    printf("width: %u\n", image_.size().width);
    printf("height: %u\n", image_.size().height);
}
Run Code Online (Sandbox Code Playgroud)

当我测试的程序,我马上widthheightimage,但widthheight我的全球垫image_0.我如何Mat正确地将数据放入我的全局变量中?

谢谢.

c++ opencv

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

c ++在unsigned chars的向量中找到char

我有以下代码的问题:

message is vector<unsigned char>

vector<unsigned char>::iterator pos = message.begin();
vector<unsigned char>::iterator start = message.begin();
vector<unsigned char>::iterator end = message.end();

pos = find(start, end, ' ');
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

error: no matching function for call to ‘find(std::vector<unsigned char>::iterator&, std::vector<unsigned char>::iterator&, char)’
Run Code Online (Sandbox Code Playgroud)

c++ unsigned vector find char

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

c ++找到vector <unsigned char>的函数

我想" "在我的身上找到空的空格vector<unsigned char> message

vector<unsigned char>::iterator pos;
pos = find(message.begin(), message.end(), " ");
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

/usr/include/c++/4.5/bits/stl_algo.h: In function ‘_RandomAccessIterator std::__find(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char> >, _Tp = char [2]]’:
/usr/include/c++/4.5/bits/stl_algo.h:4209:45:   instantiated from ‘_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char> >, _Tp = char [2]]’
../source/InveritasServer.cpp:107:49:   instantiated from here
/usr/include/c++/4.5/bits/stl_algo.h:158:4: error: ISO C++ forbids comparison between pointer and integer
/usr/include/c++/4.5/bits/stl_algo.h:4209:45:   instantiated from ‘_IIter std::find(_IIter, _IIter, const _Tp&) …
Run Code Online (Sandbox Code Playgroud)

c++ unsigned vector find char

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

c ++打印出vector <unsigned char>的bitset

我将double值复制到unsigned char的向量.它将是我的socket缓冲区,它应该包含不同类型的值.我想测试应对是否正常.我写了一个小代码.

vector<unsigned char> buffer(8);
double doubleValue_1 = 8.0;
memcpy(&buffer[0], &doubleValue_1, sizeof( doubleValue_1));

bitset<64>bitset_1(doubleValue_1);
cout << "doubleValue_1: " << bitset_1 << endl;

cout << "buffer: ";
for (int i = 0; i < buffer.size(); i++) {
    bitset<8>bitset_v(buffer.at(i));
    cout << bitset_v;
}

cout << endl << endl;

double doubleValue_2;
memcpy(&doubleValue_2, &buffer[0], sizeof(doubleValue_2));

bitset<64>bitset_2(doubleValue_2);
cout << "doubleValue_2: " << bitset_2 << endl;
Run Code Online (Sandbox Code Playgroud)

我得到了输出:

doubleValue_1: 0000000000000000000000000000000000000000000000000000000000001000
buffer:        0000000000000000000000000000000000000000000000000010000001000000
doubleValue_2: 0000000000000000000000000000000000000000000000000000000000001000
Run Code Online (Sandbox Code Playgroud)

你怎么看,第一个doubleValue_1代表8.0.比我把这个值复制到矢量.并且输出不等于前一个.但是当我从向量处理字节到双向后,我在doubleValue_2中得到的值与doubleValue_1中的值相同.我的问题是,为什么向量的输出不同于双倍?也许我以错误的方式打印出矢量.你能建议我怎么做才能正确吗?非常感谢.

c++ binary double printf vector

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

如何确定是否已关闭与套接字的连接

我在Linux下使用C++编写套接字.我有个问题.如何判断客户端是否关闭了连接.

特别是在服务器接受客户端并开始等待客户端的某些数据的情况下.但客户端不发送任何内容,只关闭与服务器的连接.在这种情况下,我的服务器正在等待一些数据.

这是我的程序示例:

 newsockfd = accept(sockfd, 
             (struct sockaddr *) &cli_addr, 
             &clilen);
 if (newsockfd < 0) 
      error("ERROR on accept");
 bzero(buffer,256);
 n = read(newsockfd,buffer,255);
Run Code Online (Sandbox Code Playgroud)

我的服务器上也有几个插座.我需要知道客户端关闭连接的哪个套接字.

c++ sockets linux

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

在函数内创建全局动态数组

我正在用C++编写一个程序.在我的程序中,我需要在一个函数内创建一个动态大小的数组,但是这个数组也应该可以访问其他函数.我不会在这里发布我的代码,只写一个虚拟示例.

char *array;


void function_1() {
    array = new char(3);
    array[0] = "value 1";
    array[1] = "value 2";
    array[2] = "value 3";
}

void function_2() {
    array[0] = "new value 1";
}

int main() {
    function_1();
    function_2();

    delete[] array;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:我不确定,如果数组将存在于function_1之外,它初始化,直到我分配数组的内存.或者数组在一个函数中只有一个局部变量的行为.这意味着,存储数组值的内存将在函数完成后被解除定位,并且我的数组的内存地址可以在我的程序中稍后重新编译.

谢谢.

c++ memory arrays allocation dynamic

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

你会推荐Todd Hoff的C++ Coding Standard吗?

你好

目前我正在寻找一个好的C++编码标准,我可以坚持下去.在互联网上,我可以找到很多编码标准.一些规则在大多数规则中很常见.但也存在差异.我找到了Todd Hoff的C++编码标准(http://www.maultech.com/chrislott/resources/cstyle/CppCodingStandard.html).我看了看,发现它真的很棒.他不仅给出了一些共同的规则,而且还详细介绍了这些规则.名称公约就是一个好例子.

我想知道,如果有人使用这个C++编码标准,他会建议使用它吗?

c++ coding-style

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

标签 统计

c++ ×7

vector ×3

char ×2

find ×2

unsigned ×2

allocation ×1

arrays ×1

binary ×1

coding-style ×1

double ×1

dynamic ×1

linux ×1

memory ×1

opencv ×1

printf ×1

sockets ×1