假設我有一個名爲image的數組,它是一個長的連續的「大小」元素數組 - 如下文所定義的。 我想裁剪這個數組(然後得到一個子矩陣),然後,通過修改子數組,我將自動修改源圖像(引用)。C++裁剪一個連續的二維數組
請注意裁剪操作將返回一個非連續陣列。這實際上是問題所在。
有沒有辦法在C++中優雅地做到這一點?
順便說一句,我用OpenCV的,升壓,等等
感謝您的幫助我不感興趣。
template <class Type> class Image
{
private:
Type *image;
public:
int rows;
int cols;
int size;
Image(int rows, int cols): rows(rows), cols(cols)
{
image = new Type[size = rows*cols];
}
~Image()
{
delete [] image;
}
Type & at(int i, int j)
{
return image[cols*i + j];
}
void print()
{
for(int i = 0; i < rows; ++i)
{
for(int j = 0; j < cols; ++j)
cout << at(i,j) << " ";
cout << endl;
}
cout << endl;
}
};
如果不採取原始連續數據的子集,你能詳細說明「裁剪」嗎? –