Я пытаюсь использовать opencv2 для предварительной обработки и отображения изображений для классификации, но кажется, что пиксели не форматируются должным образом, я не уверен, что форматирование является правильным термином. Изображение изначально было 1080p, и я использовал ffmpeg для кадрирования и масштабирования до 480X800. Я получал странные результаты, поэтому тестировал программу, используя следующий код для наложения простого шаблона шахматной доски, где все квадраты должны быть одинакового размера и квадрата -
std::string image_path = samples::findFile("/home/pi/test.jpg");
Mat img = imread(image_path, IMREAD_COLOR);
cv::cvtColor(img, img, COLOR_BGR2RGB);
for (int i = 0; i < 15 ; i++ ) {
for (int j = 0; j < 25 ; j++ ) {
int x;
if ((i + j) % 2 == 0) x = 1;
else x = 0;
for (int a = i * 32; a < (i + 1) * 32 ; a++) {
for (int b = j * 32; b < (j + 1) * 32 ; b++) {
img.at<int>(a, b) = x * img.at<int>(a, b);
}
}
}
}
Я получаю следующее
checkerboard_test
исходное изображение выглядит точно так, как должно, без растяжения или других проблем. Это отображается на небольшом сенсорном экране, подключенном к Raspberry Pi. Любая помощь будет принята с благодарностью.