У меня есть коврик этого типа
Mat port(M.size(),CV_8UC1);
и внутри у меня есть 2 значения: 0 и 1.
Если я попытаюсь сделать imshow ( " p " , port) ;
img по черному.
Как я могу различить все 0 и 1 двумя разными цветами?
Я пытался и пытался использовать line()
но вы уже должны знать две самые близкие точки, в то время как я не знаю, что значения 1 удалены друг от друга.
кто-нибудь может мне помочь?
Кажется, тривиальная проблема
Попробуйте масштабировать ваши данные для отображения: imshow(" p ", port*255);
Серый цвет 1
почти неотличим от полного черного и не будет различим ни на одном обычном мониторе / экране. При масштабировании на 255 эти пиксели выглядят белыми.
Обратите внимание, что масштабирование выполняется только для отображения и не влияет на само изображение.
Посмотри пожалуйста imshow()
документы для чего выполняется масштабирование и значения для отображения:
Функция может масштабировать изображение в зависимости от его глубины:
- Если изображение 8-битное без знака, оно отображается как есть.
- Если изображение является 16-разрядным беззнаковым или 32-разрядным целым числом, пиксели делятся на 256. То есть диапазон значений [0,255 * 256] отображается на [0,255].
- Если изображение является 32-битной плавающей точкой, значения пикселей умножаются на 255. То есть диапазон значений [0,1] отображается на [0,255].
Других решений пока нет …