這很奇怪。我有以下代碼:奇怪的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