2016-03-28 3 views
0

Я новый пользователь по обработке изображений через Matlab. Моя первая цель - применение статьи и сравнение моих результатов и результатов авторов.
В статье можно найти здесь: http://arxiv.org/ftp/arxiv/papers/1306/1306.0139.pdfПрименение изображения в виде маски в matlab

Первая проблема, качество изображения: На рисунке 7, маски определены, но я не мог достичь набор маски данных, и я использую скриншот поэтому качество изображения низкое , На мой взгляд, это может повлиять на результаты. Есть ли предложения?

Вторая проблема, слияние изображений: Я хочу применить маску 1 на Лене. Но я не хочу использовать paint =) С другой стороны, возможно ли слияние изображений и сохранение lena?

+0

Не могли бы вы поделиться кодом того, что вы пытались до сих пор? Спасибо –

+0

Я мог использовать только imread и коды imshow для маски и lena, другие слова я действительно отсутствую :) – user3470711

+0

Привет, user3470711, я отправил ответ на ваш вопрос, дайте мне знать, если он работает, и, пожалуйста, дайте мне если! Благодаря! –

ответ

0

Вам нужно создать массив маски. Первый шаг, вероятно, чтобы превратить ваше захваченное изображение из рисунка 7, в черно-белое изображение:

Mask = im2bw(Figure7, 0.5); 

Теперь фон (белый) есть все 1 и черная линия (или текст) равен 0. Давайте сделаем что ваш образ Лены, что вы получили от imread на самом деле оттенки серого:

LenaGray = rgb2gray(Lena); 

Наконец, нанесите маску на Лене:

LenaAndMask = LenaGray.*Mask; 

конечно, это лас t не будет работать, если Lena и Figure7 не имеют одинакового размера, но это должно быть легко исправить.

+0

Спасибо @Cynthia GS! Как вы сказали, последняя строка не работает. Должен ли я изменить класс маски? Имя Размер Bytes Атрибуты класса I 256x256 65536 uint8 M 256x256x3 196608 uint8 Маска 256x256 65536 логический – user3470711

0

Прежде всего, вы должны знать, что этот документ опубликован в архиве. когда документы, опубликованные в архиве, всегда полезно знать больше об авторе и/или университете, опубликовавшем статью. ТРАСТ меня на этом: вам не нужно тратить время на эту бумагу.

Я понимаю ваше требование: но это не очень хорошая идея, чтобы получить маску, делая экран печати. Значения пикселей, которые могут быть достигнуты с помощью экрана печати, могут не совпадать с исходными значениями. Увеличение может изменить размер. поэтому вы должны быть уверены, что размеры одинаковые.

Вы можете сделать печать экран. мимо изображения. обрезать маску. Преобразование rgb в серое. порог шкалы серого, чтобы получить двоичный файл.

если вы сохранили изображение как jpeg. искажения из-за высокочастотных ребер изменят форму края.

+0

На самом деле, я просил этот вопрос @dfri 'I = imread ('lena_gray_256.tif'); М = imread ('M1.tif'); М1 = im2bw (М, 0,5); ML = I; ML (M1 == 0) = 0; imshow (ML); ' И, решил! Я благодарен всем! – user3470711

Смежные вопросы