这很奇怪。我有以下代码:奇怪的OpenCV代码
int white = 0;
int black = 0;
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
int total = 0;
for (int x = i - 1; x <= i + 1; x++) {
for (int y = j - 1; y <= j + 1; y++) {
total += data[x*step + y];
}
}
if (total == (255 * 9)) {
white += 1;
// data[i*step + j] = 255;
}
else {
black += 1;
// data[i*step + j] = 0;
}
}
}
cout << white << endl << black << endl;
当我运行此代码时,它将正确输入白色和黑色。但由于某些原因,当我取消注释数据时,代码将会出错。顺便说一句,我只是简单地削弱了一幅图像,而这正是我迄今为止所提出的。
是我试图做的 - 修改数据。嗯,我试图做到这一点单独的输出图像(克隆图像,并将其分配给不同的IplImage),但仍然,输出是相同的 –
好吧,我终于明白你在说什么。现在代码作品谢谢! –
将'IplImage'结果克隆到头部克隆(需要'cvCreateImage'和'cvCopy'才能正确执行)。 cv :: Mat :: clone()要容易得多。 – William