我想知道OpenCV Mat默认构造函数是否已经分配了内存?如doc
所示> These are various constructors that form a matrix. As noted in the Automatic Allocation of the Output Data, often the default constructor
> is enough, and the proper matrix will be allocated by an OpenCV
> function.
这是否意味着我的程序结束时发生的解除分配是正确的。那是对的吗?
实际上,我在程序结束时的内存释放阶段遇到了(核心转储)错误。我的初始代码引入了一个OpenCV Mat,即Mat A而没有初始化它会产生错误。我通过使用初始化来修复此错误,即A = Mat :: zeros(...)
我想证实我先前的疑问。如果确实如此,那么每次声明时都必须初始化Mat是非常不方便的
对不起我的错误解释!如果我不够清楚,请回复我
答案 0 :(得分:2)
这是否意味着在我的结尾发生了解除分配 程序是正确的。这是对的吗?
func viewDidLoad() {
super.viewDidLoad()
button.enabled = false
}
自行分配内存,并在共享相同数据的所有cv::Mat
超出范围时释放内存(类似于cv::Mat
)。
我想证实我先前的疑问。如果是真的,那就完全了 不方便每次声明时都必须初始化
不,这是错的。但是,由于您没有显示代码,我可以猜测您没有正确地将OpenCV链接到您的项目,因为在std::shared_ptr
破坏阶段,非常好的链接OpenCV会导致错误。