andrewssobral / andrewssobral/bgslibrary
Logic error in vibe
- Lenguaje dominante
- C++
- Estrellas
- 2.3k
- Forks
- 735
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
**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.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.