小编vap*_*apo的帖子

如何保存IplImage?

当我们有一个IplImage时,我们如何保存它以便以后可以使用它,或者将它作为我们代码之外的图像(例如通过png或jpeg)查看?

作为代码示例,我有以下内容:

void SaveImage()
{
    CvSize size;
    IplImage *rgb_img;
    int i = 0;

    size.height = HEIGHT;
    size.width = WIDTH;

    rgb_img = cvCreateImageHeader(size, IPL_DEPTH_8U, 3);
    rgb_img->imageData = my_device.ColorBuffer;
    rgb_img->imageDataOrigin = rgb_img->imageData;

    /*for (i = 2; i < rgb_img->imageSize; i+= 3)
    {
        // confirming all values print correctly
        printf("%d, ", rgb_img->imageData[i]);
    }*/

    cvSaveImage("foo.png",rgb_img);
}
Run Code Online (Sandbox Code Playgroud)

我已经在注释掉的for循环中打印出所有值,看起来数据正好在缓冲区中.使用cvShowImage显示图像也可以正常工作,所以看起来图像的结构很好.

c opencv

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

数据声明不允许虚拟

在尝试声明一个抽象类时,我似乎无法使用模板化函数.为什么会这样,我该如何处理呢?这是我的示例头文件.

// Foo.h
#include "Bar.h"
#include "Baz.h"
class Foo
{
public:
    Foo();
    virtual Bar<Baz> *getBaz() const = 0;
         //snip
};
Run Code Online (Sandbox Code Playgroud)

来自同一行的其他编译器错误包括

语法错误:缺少';' 在'<'之前

c++ templates

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

转换基类的双指针

我说有一个抽象类Animal.从这节课,我有很多继承类,比如Cat,Dog,Mouse.我有一个方法,我希望能够指针指向这些对象的指针.所以void someMethod(Animal **anAnimal);

这是如何完成的?看来我不能像这样向上投球.我正在尝试以下方法:

Dog *d = new Dog(x); //some parameter x.
Animal **animal = &d;
someMethod(animal);

//where someMethod has the method signature...
void someMethod(Animal **anAnimal);
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我怎样才能完成我的尝试?

c++ inheritance

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

标签 统计

c++ ×2

c ×1

inheritance ×1

opencv ×1

templates ×1