1

バージョン 2.4.6 の Visual Studio 2012 および OpenCV ライブラリを使用して C++ でプログラミングしています。

Mat オブジェクトを同じサイズの n subMat に分割する方法を知りたいです。もっと詳しく説明しましょう。12 行 24 列のマットがあります。これを 3 行 6 列に分割して、4 * 4 の 18 個のセルを取得するとします。これらの各セルは、最初の Mat の subMat です。手っ取り早くできる方法があれば教えていただきたいです。

前もって感謝します。

4

1 に答える 1

2

colRangeとを使用できますrowRange

このようなものが役立つかもしれません:

cv::Mat mat(12, 24, CV_8U);
cv::Mat imageBlock;
std::vector<cv::Mat> imageBlocks;
int blockSize = 4;
for(i = 0; i < 12; i += blockSize)
{
    for(j = 0; j < 24; j += blockSize)
    {
        imageBlock = mat.rowRange(i, i + blockSize).colRange(j, j + blockSize);
        imageBlocks.push_back(imageBlock);
    }
}
于 2013-10-09T06:49:59.447 に答える