小编sga*_*zvi的帖子

Opencv矩阵乘法

我需要乘以矩阵及其转置,但我得到以下错误:

"OpenCV错误:断言失败(类型== B.type()&&(类型== CV_32FC1 ||类型== CV_64FC1 || type == CV_32FC2 || type == CV_64FC2))在未知函数中,文件.. .. ..\src\opencv\modules\core\src\matmul.cpp,第711行"

这是代码:

int dA[] = {
     1,     2,     3,
     4,     5,     6,
     6,     5,     4,
    }; 
Mat A = Mat(3,3, CV_32S, dA );
Mat C = A.t()* A;
Run Code Online (Sandbox Code Playgroud)

c++ opencv matrix-multiplication

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

C++滥用字符串连接

所以我在最近几个月生成了一些代码,可能更多,我使用C++字符串库来连接字符串.像这样:

template< typename T >
string tostr( const T & val ); // implmented wherever

void somelibraryfunction( const char * );

// begin actual code

somelibraryfunction( ( "foo" + tostr( 5 ) ).c_str( ) );
Run Code Online (Sandbox Code Playgroud)

这编译并正常工作.我担心的是,创建的字符串临时在c_str被占用的地址被销毁之后被破坏,而我只是依赖于读取最近释放但未清除的内存.有什么想法吗?

c++ string

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

cv::Mat.release()

我开始在我的图像处理程序中使用 OpenCV。当我cv::Mat在内存上的一个方法中使用和分配时:

cv::Mat coords(100, 5, CV_32FC1);
Run Code Online (Sandbox Code Playgroud)

我需要做coords.release()从在方法结束的内存清楚,如果我不再需要什么?

有这个必要吗?谢谢

c++ opencv

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

指向char的指针

char* pStr = new String("Hello");
char* s = "Hello";
Run Code Online (Sandbox Code Playgroud)

第一个是正确的吗?这两者有什么区别吗?我的猜测是第一个是在堆上分配的,另一个是堆栈.我正确还是有其他差异?

c++

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

CUDA内核中未定义的分区 - 有什么想法吗?

在刚刚编写CUDA内核时,我有机会测试以下代码的结果:

unsigned char temp1 = 0x00;
unsigned char temp2 = 0x00;
unsigned char temp3 = temp1/temp2;

printf("%02X", temp3);`
Run Code Online (Sandbox Code Playgroud)

此代码打印"0xFF".我对此极为困惑,有人可以提供解释吗?

math cuda divide-by-zero

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

指针未使用结构作为参数进行初始化.访问冲突写入位置0x00000010.

结构看起来像这样:

template <class Node_entry>
Node<Node_entry>::Node(Node_entry item, Node *add_on)
{
    entry = item;
    next = add_on;
}
Run Code Online (Sandbox Code Playgroud)

并且*new_rear指针没有初始化,但是&item填充了用户输入.

   Error_code Extended_queue::append(const Queue_entry &item) {
        Node<Queue_entry> *new_rear = new Node<Queue_entry>(item);
        if(new_rear = 0)
            return overflow;
        if(rear = 0){
            front = new_rear;
            rear = new_rear;
        }
        else {
            rear->next = new_rear;
            rear = new_rear;
        }
        return success;
    }
Run Code Online (Sandbox Code Playgroud)

在VS2010的本地人中,这个和new_rear都是(!)在下一个和条目中,项目是好的.我该怎么做才能得到这个?

"访问冲突写入位置0x00000010."

c++ struct pointers visual-studio-2010

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

非MFC,Win32项目的_T("")宏

我正在创建一个Win32项目,我试图在TCHAR任何地方使用它.但由于它是一个非MFC项目,我没有_T定义.

我如何在我的项目中获得它?

winapi mfc tchar

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

NVIDIA Kepler无边框纹理

在NVIDIA Kepler架构中,他们已经消除了绑定纹理的必要性.但我找不到简单的例子来说明这一点.有没有人遇到过可以说明用法的例子?

cuda

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

存储在OpenCV的Mat结构中的元素的类型

是否存在一些方法可用于确定OpenCV中Mat结构中存储的元素的数据类型(如uchar,cv :: Vec3b ...)?

c++ opencv types mat

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

使用指向malloc分配内存之外的指针的预期行为

只是想知道,因为我无法找到一种方法来测试这个.想象一下,我有10个字节的内存

  1. 我的malloc varA有5个字节
  2. 分配一个包含7个字符的字符串(最多使用8个字节)
  3. 我的malloc varB有5个字节

程序会遇到错误吗?或者最终得到胡言乱语的记忆?

这种行为是否与ac/c ++和cuda程序不同?

c c++

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

为什么这个C程序有效?

当我执行以下代码时

#include<stdio.h>
#include<unistd.h>

int main(void)
{
    int i; 
    for(i=0;i<=100;i++)
    {
        printf("Percentage complete: %d %%",i);
        sleep(1);
    }
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

但是,当我执行以下代码时,代码不起作用,

#include<stdio.h>
#include<unistd.h>

int main(void)
{
    int i; 
    for(i=0;i<=100;i++)
    {
        printf("\nPercentage complete: %d %%",i); //There is a newline here
        sleep(1);
    }
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

代码似乎工作.我不知道为什么.

c

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