小编Ras*_*oul的帖子

将data.frame列格式从字符转换为因子

我想将我的data.frame object(mydf)的某些列的格式(类)从charactor更改为factor.

当我按read.table()功能阅读文本文件时,我不想这样做.

任何帮助,将不胜感激.

r character dataframe r-faq

136
推荐指数
6
解决办法
31万
查看次数

C++中的几何库

我在c ++中寻找一个易于使用且记录良好的几何库.我想在3D感知中使用它来处理点云.协调变换,旋转和翻译是我现在特别关注的问题.有什么建议吗?

c++ geometry

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

如何动态更改cv :: Mat图像尺寸?

我想在我的代码中声明一个cv :: Mat对象和其他地方,改变它的维度(nrows和ncols).我在OpenCV的文档中找不到任何方法.他们总是建议在构造函数中包含维度.

c++ opencv

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

OpenNI RGB图像到OpenCV BGR IplImage转换?

可以从OpenNI图像元数据获得的图像被布置为RGB图像.我想将其转换为OpenCV IplImage,默认情况下假设数据存储为BGR.我使用以下代码:

    XnUInt8 * pImage = new XnUInt8 [640*480*3]; 
    memcpy(pImage,imageMD.Data(),640*480*3*sizeof(XnUInt8));
    XnUInt8 temp;
    for(size_t row=0; row<480; row++){
        for(size_t col=0;col<3*640; col+=3){
            size_t index = row*3*640+col;
            temp = pImage[index];
            pImage[index] = pImage[index+2];
            pImage[index+2] = temp;
        }
    }
    img->imageData = (char*) pImage;
Run Code Online (Sandbox Code Playgroud)

C/C++中执行此转换的最佳方式(最快)是什么,使RGB图像变为BGR(以IplImage格式)?

rgb opencv bgr openni

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

如何用'new'和'delete'替换'malloc'和'free'?

如何更改以下代码,以便我可以使用newdelete不是mallocfree

#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

class myclass{
  private:
    float **m_R;
  public:
    myclass();
    ~myclass();
    float **getR(void);
    void setR(void);
};

myclass::myclass()
{
  // first allocate rows (for pointers)
  m_R = (float**)malloc(3*sizeof(float));
  // next allocate columns for float values
  for(int i=0;i<3;i++)
    *(m_R+i) = (float*)malloc(3*sizeof(float));
}

myclass::~myclass()
{
  // first free memory allocated by columns
  for(int i = 0; i < 3; i++)
  {
    free(m_R[i]);
  }
  // next free memory allocated …
Run Code Online (Sandbox Code Playgroud)

c++ malloc new-operator

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

OpenCV resize() 中的 INTER_LINEAR 插值如何工作?

我正在弄清楚当我们设置fx=2和时,OpenCV resize() 函数如何计算线性插值fy=1。我写了以下最小工作示例,

import cv2
import numpy as np

pattern_img = np.zeros((6, 6), np.uint8)
pattern_img[:, 0::2] = 255
patteen_img_x2 = cv2.resize(pattern_img, None, fx=2, fy=1, interpolation=cv2.INTER_LINEAR)
Run Code Online (Sandbox Code Playgroud)

如果我们看pattern_img和的第一行pattern_img_x2,我们会得到,

pattern_img[0, :]
> array([255,   0, 255,   0, 255,   0], dtype=uint8)
pattern_img_x2[0, :]
> array([[255, 191,  64,  64, 191, 191,  64,  64, 191, 191,  64,   0]], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)

我不知道数字 191 和 64 是如何计算的。我知道它实现了bilinear算法,但在本例中我们设置了fy=1,所以它应该是沿 x 轴的简单线性插值。但我不知道如何resize()计算这些插值数字。有人可以帮助我理解背后的算法吗?

interpolation opencv resize

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

在std :: vector声明中使用void指针有多糟糕?

我有两个不同的课程如下:

class text
{ };

class element
{ };
Run Code Online (Sandbox Code Playgroud)

我想将它们存储在class node:

template <typename T>
class node
{
    T cargo;

    std::vector<void*> children;

    node(T cargo) : cargo(cargo)
    { };

    void add_child(T node)
    {
        this->children.push_back((void*) node);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我会以这种方式调用节点存储两个,text并且element:

element div;
text msg;

node<element> wrapper(div);

wrapper.add_child(msg);
Run Code Online (Sandbox Code Playgroud)

编辑:要取回我使用的内容T typedef type;并将void指针转换为(type*).

我知道这不是很优雅也不实用,但我无法弄清楚这样做的正确方法是什么.所以请告诉我这是否实际可以接受,如果不是,那么如何以正确的方式做到这一点.

提前致谢!

c++ vector void

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

`float array`没有命名类型错误

这是生成错误的最小工作代码示例 ‘MyMap’ does not name a type

const int MAX_N = 4;

enum ENUM_POINTS{A=0, B, C, D};
float MyMap[MAX_N][MAX_N]={{0}};

MyMap[A][B]=140;
MyMap[B][C]=90;
MyMap[B][D]=85;

int main() {

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

编译器是gcc.我认为错误消息/类型不适合这种情况.有人知道为什么编译器会因上述错误而产生这种错误吗?

c compiler-errors

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