andrewssobral / andrewssobral/bgslibrary

Logic error in vibe

Aperta
#197 0 commenti 0 reazioni 1 assegnatario Rivendicata da @andrewssobral Vedi su GitHub
to investigate
Lingua principale
C++
Stelle
2.3k
Fork
735
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**Describe the bug**
When we init the `historybuffer[]`, the elements in it are like **BBBBBBBBBBBBBBBBBBGGG…RRR…**(suppose that the image imported by cv is a RGB image not a BGR). But when we use `historybuffer[]`, we see it as **RGBRGBRGB……** which confuses me much.

**To Reproduce**
Just see the code : ), I will offer it.
when we init it
```
for (int index = (3 * width) * height - 1; index >= 0; --index) {
uint8_t value = image_data[index];
for (int x = 0; x < model->numberOfSamples - NUMBER_OF_HISTORY_IMAGES; ++x) {
int value_plus_noise = value + rand() % 20 - 10;
if (value_plus_noise < 0) { value_plus_noise = 0; }
if (value_plus_noise > 255) { value_plus_noise = 255; }
model->historyBuffer[index * (model->numberOfSamples - NUMBER_OF_HISTORY_IMAGES) + x] = value_plus_noise;
}
}
```
when we use it
```
for (int i = numberOfTests; i > 0; --i, indexHistoryBuffer += 3) {
if (
distance_is_close_8u_C3R(
image_data[(3 * index)], image_data[(3 * index) + 1], image_data[(3 * index) + 2],
historyBuffer[indexHistoryBuffer], historyBuffer[indexHistoryBuffer + 1], historyBuffer[indexHistoryBuffer + 2],
matchingThreshold
)
)
--segmentation_map[index];
```
**Expected behavior**
Consistency should be maintained in logic.
Init it just like this(may have some errors)
```
auto plus_noise = [](uint8_t value) -> int {int value_plus_noise = value + rand() % 20 - 10;
if (value_plus_noise < 0) { value_plus_noise = 0; }
if (value_plus_noise > 255) { value_plus_noise = 255; }
return value_plus_noise;};
for (int index = (3 * width) * height - 1; index >= 0; index -= 3) {
uint8_t value_1 = image_data[index];
uint8_t value_2 = image_data[index - 1];
uint8_t value_3 = image_data[index - 2];
for (int x = 0; x < model->numberOfSamples - NUMBER_OF_HISTORY_IMAGES; ++x) {
int value_plus_noise1 = plus_noise(value_1);
int value_plus_noise2 = plus_noise(value_2);
int value_plus_noise3 = plus_noise(value_3);
model->historyBuffer[(index - 2) * (model->numberOfSamples - NUMBER_OF_HISTORY_IMAGES) + x * 3 + 2] = value_plus_noise1;
model->historyBuffer[(index - 2) * (model->numberOfSamples - NUMBER_OF_HISTORY_IMAGES) + x * 3 + 1] = value_plus_noise2;
model->historyBuffer[(index - 2) * (model->numberOfSamples - NUMBER_OF_HISTORY_IMAGES) + x * 3] = value_plus_noise3;
}
}
```

**Additional context**
However, it nearly doesn't cause any mistake when we just see the result, which confuses me more.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.