2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 05:34 
Есть ли средства в матлабе в массив изображения (который, например, визуализируется с помощью imshow) добавлять текст и линии?

Речь идет не о том чтобы просто посмотреть на картинку с моими добавлениями в окне figure матлаба, а именно о добавлении в массив, который потом можно сохранить в файл (imwrite).
Допустим, с линиями я справлюсь программно попиксельно, а вот с текстом... посложнее.

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 18:01 
Функция insertText. (По крайней мере, в R2013b уже есть и работает).

Upd. В очень старых версиях можно использовать экспорт
Используется синтаксис Matlab M
>> p = imread('d:\8Ma.jpg');
>> text(10, 10, '8!!!')
>> print -f1 -djpeg 'd:\88.jpg'
В сохранённом файле будет исходное изображение (8Ma.jpg) и текст '8!!!'.
Для теста в Matlab 6.5 использована картинка из сообщения с поздравлением

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 18:41 
GAA в сообщении #1512823 писал(а):
Функция insertText

Ничоси!! Не знал, спасибо огромное. А иные графические примитивы можно, типа прямоугольников, стрелочек и т.п.?

-- 04.04.2021, 18:47 --

P.S. Кстати, сейчас подумал: можно же вывести в figure изображение функцией imshow, затем дорисовать все что нужно и записать в файл принтом?

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 18:55 
text не годится (см. 2-й абзац 1-го поста).

GAA в сообщении #1512823 писал(а):
Функция insertText. (По крайней мере, в R2013b уже есть и работает).

Я видел в инетах эту штуку. Мой R2014a ее не знает. М.б. для нее какой-то тулбокс нужно подключить?
Но показалось, что это тоже не то.

GAA в сообщении #1512823 писал(а):
В очень старых версиях можно использовать экспорт

А можно уточнить?

ozheredov в сообщении #1512830 писал(а):
P.S. Кстати, сейчас подумал: можно же вывести в figure изображение функцией imshow, затем дорисовать все что нужно и записать в файл принтом?

Это не годится -- см. 1-ю строчку этого поста.

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 19:03 
Diusha
Тут где-то было мое сообщение про импортируемые java-классы, которые позволяют сделать то, что Вам нужно, несколько "обходным" путем. То ли сообщение не отправилось, то ли в последствии кем-то стерлось. Интересует?

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 19:35 
ozheredov в сообщении #1512834 писал(а):
Интересует?


Даааа

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 19:36 
Diusha в сообщении #1512832 писал(а):
Мой R2014a ее не знает. М.б. для нее какой-то тулбокс нужно подключить?
По ссылке из моего первого сообщения в теме: "Introduced in R2013a". Если установлена полная справка, то в ней есть соответствующе описание. Computer Vision System Toolbox.
ozheredov в сообщении #1512830 писал(а):
Ничоси!! Не знал, спасибо огромное. А иные графические примитивы можно, типа прямоугольников, стрелочек и т.п.?
По ссылке из моего первого сообщения в теме: insertShape('Rectangle', 'FilledRectangle', 'Line', 'Polygon', 'FilledPolygon', 'Circle', 'FilledCircle'). Стрелок нет, но из 'Line' можно попробовать соорудить (возможно будет коряво). Или создать новый объект.

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 19:50 
GAA в сообщении #1512838 писал(а):
Если установлена полная справка, то в ней есть соответствующе описание.

Да, это, конечно, именно то, что нужно.
Наверно, справка установлена на те тулбоксы, которые сами установлены, и в ней такого нет.
А откуда известно про R2013a?

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 20:12 
Diusha в сообщении #1512840 писал(а):
А откуда известно про R2013a?
GAA в сообщении #1512838 писал(а):
По ссылке из моего первого сообщения в теме: "Introduced in R2013a".
<…>
Introduced in R2013a
<…>


 !  Постоянный бан за троллинг участнику ozheredov был заменён на месячный с условием блокировки навсегда в случае продолжения им нарушений правил форума.

Учитывая многочисленны последующие блокировки [1 неделя (Ende), недельная и месячная блокировка (photon), «два месяца за множественный флуд, оффтопик и провокационные сообщения» ( Pphantom)], за систематический флуд в тематических разделах ozheredov заблокирован навсегда.
(Upd. Исправлена ссылка)

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение04.04.2021, 22:33 
Diusha в сообщении #1512832 писал(а):
А можно уточнить?
Виноват. Копируя из командного окна, пропустил одно предложение. Полностью должно быть так
Используется синтаксис Matlab M
>> p = imread('d:\8Ma.jpg');
>> imshow(p)
>> text(10, 10, '8!!!')
>> print -f1 -djpeg 'd:\88.jpg'

В справке пакета указаны варианты форматов (не обязательно jpeg). Но я стараюсь сохранять в векторные форматы, если для печати. (При печати векторных не будут буквы "корявыми".)

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение05.04.2021, 08:19 
GAA в сообщении #1512858 писал(а):
Копируя из командного окна, пропустил одно предложение.

Я и не заметил, что в коде пропущен imshow, а то, что строка про экспорт относится именно к этому коду, не понял, поэтому и попросил уточнения :lol:

insertText -- то, что нужно.
Спасибо.
Остается только разобраться, почему его у меня нет.

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение05.04.2021, 19:35 
 i  После обсуждения в кругу модераторов я признал свою ошибку. Участник ozheredov разблокирован. Приношу свои извинения.

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение05.04.2021, 19:37 
Доустановил Computer Vision System Toolbox, заработало! :D
Еще раз спасибо!

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение07.04.2021, 11:19 
insertText работает, но не выводит кириллицу. Как-то можно это вылечить?
Предполагаю, что это связано с невозможностью менять фонты (эта возможность введена, кажется, с R2015b (у меня R2014a)), а единственный фонт, который там по умолчанию, без кириллицы.
Можно ли что-то сделать?

 
 
 
 Re: [MATLAB] Добавление текста и линий в массив изображения
Сообщение07.04.2021, 22:50 
Я не знаю способа вылечить insertText.
Если писать свою функцию insertText лень, то можно воспользоваться вариантом с экспортом.
Если экспортировать изображение, то вокруг него в файле, по крайней мере в R2013, будет белый бордюр (изображение будет окружено белой рамкой).
Возможен такой вариант.
1. Получив, размеры исходного изображения, выводим на рисунок с белым фоном только текст (функция text).
2. Экспортируем этот рисунок с текстом в файл.
3. Считываем файл, вырезаем фрагмент с рисунком, увеличиваем контрастность.
4. Накладываем изображение текста на исходное "изображение".

На скорую руку, где-то так
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
p = imread('d:\8Ma.jpg');
[H, W, D] = size(p);
BG = uint8(255*ones(H, W, 3));
imshow(BG);
text(10,10, '8 марта!')
print -f1 -djpeg -r0 'd:\88Ma.jpg'
pp = imread('d:\88Ma.jpg');
imshow(pp);
[ii, jj] = find(pp(:, :, 1) < 128);
d = pp(min(ii):max(ii), min(jj):max(jj), 1) < 127;
[m, n] = size(d);
for i = 1:m
 for j = 1:n
  if d(i, j)
   p(10+i, 10+j, :) = 0;  
  end    
 end
end
imshow(p);

Вложение:
txt2img.PNG


У вас нет доступа для просмотра вложений в этом сообщении.

 
 
 [ Сообщений: 16 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group