C++ 为什么可以';在课堂上初始化opencv Mat
我试图初始化类Source_Buffer中Mat的构造函数,但我给了我一个错误“ConsoleApplication4.exe中发生了缓冲区溢出,它破坏了程序的内部状态。按Break调试程序或继续终止程序。” 不起作用。 显示“访问冲突写入位置0x0000000000000000”。猜一些空指针的东西。 我试着在课堂上搜索一些东西,但什么也找不到。 我的想法有什么问题 source.cppC++ 为什么可以';在课堂上初始化opencv Mat,c++,class,opencv,pointers,mat,C++,Class,Opencv,Pointers,Mat,我试图初始化类Source_Buffer中Mat的构造函数,但我给了我一个错误“ConsoleApplication4.exe中发生了缓冲区溢出,它破坏了程序的内部状态。按Break调试程序或继续终止程序。” 不起作用。 显示“访问冲突写入位置0x0000000000000000”。猜一些空指针的东西。 我试着在课堂上搜索一些东西,但什么也找不到。 我的想法有什么问题 source.cpp 嗯,无法复制,您是如何/在哪里使用源缓冲区类的?我添加了额外的主代码 # include <iost
嗯,无法复制,您是如何/在哪里使用源缓冲区类的?我添加了额外的主代码
# include <iostream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace std;
using namespace cv;
class Source_Buffer {
public:
Source_Buffer();
int run();
private:
const char* sffiename;
Mat sfsrc; // this causes error
Rect sfregion_of_interest;
};
Source_Buffer::Source_Buffer() :
sffiename("C:/ccc.jpg")
, sfsrc(imread(sffiename,0)) // and this
, sfregion_of_interest()
{
}
int Source_Buffer::run(){
cout << "test" << endl;
//Mat sfsrc = imread(sffiename, 0);
sfregion_of_interest = Rect(90, 75, 250, 250);
sfsrc = sfsrc(sfregion_of_interest);
(...)
return 0;
}
class Source_Buffer {
public:
Source_Buffer();
int run();
private:
const char* sffiename;
Rect sfregion_of_interest;
Mat sfsrc;
};
Source_Buffer::Source_Buffer() :
sffiename("C:/ccc.jpg")
, sfregion_of_interest()
{
}
int Source_Buffer::run(){
cout << "test" << endl;
sfsrc = imread(sffiename, 0);
sfregion_of_interest = Rect(90, 75, 250, 250);
sfsrc = sfsrc(sfregion_of_interest);
return 0;
}
#include "Source_Buffer.h"
int main()
{
try
{
cout << "(1) Start !" << endl;
Source_Buffer sfbuffer;
cout << "(2) running entrance" << endl;
//Source_Game source_game;
//source_game.runc();
sfbuffer.run();
}
catch (std::exception& e)
{
std::cout << "\nEXCEPTION: " << e.what() << std::endl;
}
return 0;
}
#pragma once
/*bridge*/
class Source_Buffer {
public:
Source_Buffer();
int run();
};