Вы можете использовать функцию threshold()
в OpenCV для удобства. Вы упоминаете «ненулевые» элементы. Если ваша матрица имеет отрицательные числа, и вы все еще хотите, чтобы они были установлены в 1, используйте threshold(abs(my_mat), ..)
.
В общем, это также может быть сделано через это:
Mat my_mat;
Mat reference = Mat::zeros(rows, cols, type);
Mat result = (abs(my_mat) > reference)/255;
Это больше, и, вероятно, выглядит хаотичным, но имеет то преимущество, что reference
может быть отрегулирован на что-то другое, чем все нули, если это необходимо (это может быть, например, градиент). Кроме того, <
не единственный оператор, который может там поместиться - любой логический оператор может быть использован. Результат логической операции всегда равен 0 или 255, следовательно, деление.
Вы хотите загрузить файл .mat в openCV? –
Извините, что я вас обманываю. Я имею в виду cv :: Mat. – wking
Думаю, вам нужно «жестко закодировать» его с помощью пары петель. –