Вы можете использовать VI
Script :
$ vi test.txt -c '%s/aaa/NNN/ | wq'
$ cat test.txt
NNN
NNN
bbb
ccc
ddd
Вы просто автоматизируете, что обычно будет введено при использовании VI
в командном режиме (доступ к использованию ESC : Обычно):
%
- выполнять следующую команду на каждой строке:
S / AAA / NNN /
- подтитность AAA
с NNN
|
- Command Delimiter
w
- Написать изменения в файл
Q
- Quit
Существуют различные программы командной строки, такие как xxd
или ] hexdump
, который выведет шестнадцатеричное содержимое файла на ваш терминал. Вы можете использовать vim
для редактирования шестнадцатеричных файлов. См. этот ответ .
Вы действительно хотите этим заниматься? Вы заявили, что особенно хотите анализировать файлы изображений. Для этого лучше использовать язык программирования.
Изображение - это просто матрица чисел. Например, изображение RGB может быть представлено как 3 матрицы, содержащие значения от 0 до 255. Чисто красное изображение 5x5 пикселей будет выглядеть следующим образом:
Матрица 1 (красная плоскость):
255 255 255 255 255
255 255 255 255 255
255 255 255 255 255
255 255 255 255 255
255 255 255 255 255
Матрица 2 (зеленая плоскость):
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Матрица 3 (синяя плоскость):
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Для анализа изображений таким образом были созданы различные инструменты. Эти инструменты довольно стандартные в мире обработки изображений:
Они интерактивны и очень просты в использовании. MATLAB дает вам приглашение >>
, где вы, например, вводите команды. Компиляция не требуется.
Чтобы прочитать изображение:
>> im = imread('Penguins.jpg');
Чтобы извлечь красную плоскость из изображения:
>> red = im(:,:,1);
Здесь используется оператор :
для извлечения всех координат x и всех координат y из 1-й плоскости z (красная плоскость) изображения.
Чтобы увидеть сначала 5x5 пикселей красной плоскости:
>> red(1:5, 1:5)
ans =
116 118 118 120 118
116 116 117 118 116
118 117 117 118 118
117 117 118 118 118
119 118 117 118 118
Я не буду публиковать примеры Python, но это также легко сделать.
Если вы просто ищете способ сравнить изображение после манипуляции, чтобы увидеть, какие пиксели (и в каких каналах) изменились, вы можете использовать ImageMagick compare
инструмент. Это подробно описано здесь, на веб-сайте ImageMagick: http://www.imagemagick.org/script/compare.php .
Вот пример с той страницы, но я использую изображение розы с этого сайта вместо . Допустим, у вас есть изображение rose.jpg
, и вы запускаете на нем функцию повышения резкости, сохраняя результаты в reconstruct.jpg
.
$ convert rose.jpg -sharpen 0x1 reconstruct.jpg
Затем мы можем использовать инструмент compare
, чтобы построить изображение difference1.png
из двух изображений выше, например:
$ compare rose.jpg reconstruct.jpg difference1.png
If мы хотим удалить любые намеки на исходное изображение из difference1.png
, мы можем использовать опцию -compose src
для дальнейшего удаления исходного изображения из разностного изображения. Результаты можно увидеть в difference2.png
.
$ compare -compose src rose.jpg reconstruct.jpg difference2.png
Это только царапина на поверхности того, что может сделать compare
. Помимо прочего, он также может показать вам различия в цветовых каналах.
-compose src
? Если вам интересно, эта операция подробно обсуждается здесь.
отрывок - http://www.imagemagick.org/script/command-line-options.php#compose-оператор компоновки
Устанавливает тип композиции изображения. См. Альфа-композитинг для подробное обсуждение альфа-композитинга.
Этот параметр влияет на операторы обработки изображений, которые объединяют два (или подробнее) изображения вместе каким-то образом. Сюда входят операторы, -сравнить , -композит , -слой композит, -плоский , -мозаика , - слои объединяются, -граница , -кадр и -экстент .
Это также одна из основных опций для "составной" команды.
Если файлы Не находятся в некоторых сжатых или иным образом кодированных, формата, а изменения ограничены, вы можете легко сделать это с помощью CMP -L
.
Когда мы получили нашу первую графическую доску Targavista, которые предоставляли бы изображения одной рулевой палубы, она пришла с простой командой (DOS) загрузки утилиты и пакетом краски, но без какой-либо документации. ¹
Что было легко Рассчитано это несжатое изображение имело размер 18 * 3 * (ширина * высота) пикселей. Затем я создал полное черное изображение и вывел несколько файлов, где на каждом только один пиксель, в основном цвете, в одном из углов. Сравнивая эти файлы (после передачи в SunOS) с помощью CMP -
было легко проанализировать порядок байта рядов и столбцов, а также порядок цветов, а также написать программу для распадания нашего визуализации .gif
Изображения .tga .tga
.²
¹ Это было в 1990 году до того, как произошли библиотеки с открытым исходным кодом, которые поддерживали .TGA
/ .vst
² ² Взял дилер, который продал нам карту, несколько недель, чтобы получить нам едва читаемое, N-Th Copy, факс с информацией об формате файлов из США. Основываясь на том, я мог бы реализовать версию файлов Runlendencedededed и сэкономить нами несколько секунд. Время загрузки на кадр.