Я пытаюсь прочитать определенные пиксельные цвета с помощью openCV из cv :: mat, но я получаю разные результаты для одного и того же цвета. Поэтому я попытался протестировать, чтобы писать пиксельные цвета, что также приводит к странным цветам, которые отличаются от моего ввода. для чтения цвета пикселей я использую:Изменить цвет одного пикселя в openCV
Mat dst;
struct {
Vec3b colorrgb[10];
} RGBscan;
int aktivy[11] = {0, 430, 200, 170, 140, 200, 420, 670, 725, 725, 670};
int aktivx[11] = {0, 50, 200, 480, 920, 1200, 1360, 1200, 880, 540, 220};
for (int i = 1; i < 11; i++) {
RGBscan.colorrgb[i] = dst.at<Vec3b>(aktivy[i], aktivx[i]);
cout << "rgbcode: " << RGBscan.colorrgb[i] << " x: " << aktivx[i]
<< " y: " << aktivy[i] << "\n";
};
хотя некоторые пиксели содержат один и тот же цвет в резюме :: Mat ДСТ я получить разные результаты в командной строке.
Кроме того, когда я стараюсь так установить пиксель на другой цвет с:
dst.at<Vec3b>(436, 50) = 255, 255, 255;
dst.at<Vec3b>(437, 50) = 255, 255, 255;
dst.at<Vec3b>(438, 50) = 255, 255, 255;
dst.at<Vec3b>(439, 50) = 0, 0, 0;
dst.at<Vec3b>(440, 50) = 0, 0, 0;
я получить другой цвет, напечатанный на картинке. Когда я проверяю напечатанные пиксели с помощью gimp, (255, 255, 255) теперь: (255, 110, 110) и (0, 0, 0): (0, 210, 210).
Исходный цвет этих пикселей находится в RGB (210, 210, 210).
Я просто не понимаю, что я делаю неправильно. Ценю вашу помощь! :)
C++ не Python, попробуйте как : 'dst.at (436, 50) = Vec3b (255, 255, 255);' –
Miki
В качестве побочного элемента 'RGBscan.colorrgb [10] = ...' выходит за пределы. – SpamBot
ваш «RGBscan» бесполезен и не прав, когда вы читаете за гранью. Вы можете использовать 'std :: vector в конце концов –
Miki