У меня есть серия черно-белых изображений (не в оттенках серого, черно-белое; 2D-матрицы в Matlab), и мне нужно случайным образом скремблировать пиксели.Я нашел этот пакет в Mathworks File Exchange (https://it.mathworks.com/matlabcentral/fileexchange/66472-image-shuffle);, одна из функций, imScrambleRand , делает именно то, что мне нужно, но он работает для изображений RGB (3D-матрицы). Есть ли способпреобразовать черно-белые изображения в 3D-матрицы, чтобы я мог использовать эту функцию? Или кто-нибудь может предложить другой сценарий, который делает то, что мне нужно? Помните, что я не знаком с Matlab, но я сделаю все возможное.
Спасибо.
РЕДАКТ. 1: Когда я импортирую изображение BW, я получаю двумерную матрицу логических значений (0 = черный, 1 = белый). Я думаю, что разные данныеФормат (логика против целого числа) - это то, что выдает ошибки при использовании функции для изображений RGB.
РЕДАКТИРОВАТЬ 2: Я адаптировал демонстрационный код из вышеупомянутого пакета и использовал предложение @Jonathanдля преобразования 2D-матрицы в 3D-матрицу и добавления цикла для преобразования логических значений в целочисленные значения RGB, затем используйте функцию imScrambleRand . Это работает, но я получаю следующее изображениеge: СКАРМАННОЕ ИЗОБРАЖЕНИЕ .Это чёрно-белое изображение, с которого я начинаю: ЧЕРНОЕ ИЗОБРАЖЕНИЕ .Поэтому я проверил зашифрованное изображение, и функция из файла FEX фактически скремблирует в пределах значений RGB, что означает, что я нашел, например, пиксель с RGB 0,255,0 .Итак, я решил проблему, но на самом деле есть проблема внутри функции: она не скремблирует пиксели, она скремблирует значения, генерируя цвета, которых не было в исходном изображении.
РЕДАКТИРОВАТЬ 3: Я использовал код, предоставленный @nhowe, и я получил именно то, что мне нужно, спасибо!
РЕДАКТИРОВАТЬ 4: Хорошо,Оказывается, это не нормально скремблировать пиксели, так как это делает изображение слишком рассеянным и отличным от исходного изображения (вы не говорите?), но мне нужно скремблировать БЛОКИ ПИКСЕЛЕЙ , чтобы вы могли 'На самом деле изображение не распознается, но черные пиксели не слишком разбросаны.Есть ли способ сделать это, используя код, предоставленный @nhowe?
РЕДАКТИРОВАТЬ 5: Это должно быть в порядке с этой функцией: https://it.mathworks.com/matlabcentral/fileexchange/56160-hio-been-hb-imagescramble