【发布时间】:2016-12-18 21:34:17
【问题描述】:
我在 txt 文件中有两个灰度图像,一个是主图像的较小块。我已将图像读入两个不同的二维向量矩阵。
图像的行和列是:
主要:M = 768 N = 1024
SubImg:R = 49 C = 36
int R = 49;诠释 C = 36; //子图像行/列
int M = 768;整数 N = 1024; //主图像行/列
我已经按宽度:49 和高度:36 的块循环遍历主图像,我想将每个块放入一个数组中,所以我可以将数组与子图像(使用最近邻搜索)进行比较,看看哪个块具有最接近子图像的结果。
这是主图的循环代码:
for (double bx = 0; bx < M; bx += R)
for (double by = 0; by < N; by += C)
{
for (int x = 0; ((x < R) && ((bx + x) < M)); ++x)
{
for (int y = 0; ((y < C) && ((by + y) < N)); ++y)
{
if ((bx + x) >= M)
{
std::cout << (bx + x) << (by + y) << " ";
}
cout << MainIMG_2DVector[bx + x][by + y] << " ";
}
}
cout << "\n\n\n" << endl;
}
此循环一次性显示所有块。我遇到的问题是我不知道如何将每个块放入一个数组中,所以我可以比较数据。 另外,使用指针而不是数组更好吗?
谢谢
【问题讨论】:
标签: c++ arrays pointers for-loop image-processing