Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Get Parts of an Image - Wolfram Mathematica

 Извлечение частей изображения

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

Самым простым способом получить часть изображения является использование функции ImageCrop. По умолчанию, ImageCrop захватывает область в центре изображения с указанным в пикселях размером по ширине и высоте. Воспользуемся функцией ImageCrop для обрезки до изображения шириной 300 и высотой 100 пикселей:

In[2]:=

GetPartsOfAnImageRU_3.gif

Out[2]=

GetPartsOfAnImageRU_4.gif

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

In[3]:=

GetPartsOfAnImageRU_5.gif

Out[3]=

GetPartsOfAnImageRU_6.gif

Можно воспользоваться функцией ImageTake, если Вы знаете какое количество рядов и столбцов из точек необходимо извлечь из исходного изображения. Извлечем 100 первых рядов точек изображения:

In[4]:=

GetPartsOfAnImageRU_7.gif

Out[4]=

GetPartsOfAnImageRU_8.gif

Вы также можете указать начальные и конечные координаты в качестве аргументов функции ImageTake для точного выбора требуемой области изображения. Из влечем часть изображения в интервале рядов от 200 до 299 и столбцов от 100 до 399:

In[5]:=

GetPartsOfAnImageRU_9.gif

Out[5]=

GetPartsOfAnImageRU_10.gif

Функции ImageCrop и ImageTake дополняют друг друга, предоставляя Вам широкий спектр функциональных возможностей. Но что, если Вы хотите выбрать интересующую область с помощью мыши или другого указательного устройства? Вы легко можете выполнить это в несколько простых шагов.

Наведите указатель мыши на изображение, шелкните правой клавишей и выберите пункт Get Indices из контекстного меню. Указатель мыши превратится крестик с расположенным рядом окном-подсказкой, в котором отображаются координаты текущей позиции указателя мыши.  

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

Вы можете попробовать сделать это на изображении ниже, а затем вставить координаты в следующую ячейку ввода:

In[10]:=

GetPartsOfAnImageRU_13.gif

Out[10]=

GetPartsOfAnImageRU_14.gif

Обратите внимание, что координаты даются в форме GetPartsOfAnImageRU_15.gif:

In[1]:=

GetPartsOfAnImageRU_16.gif

Нужно связать или транспонировать полученные координаты, чтобы преобразовать список в форму GetPartsOfAnImageRU_17.gif, как того требует функция ImageTake. Последующая операция сортировки обеспечивает порядок по-возрастанию, дабы не обращать внимание на последовательность, в которой были выбраны противолежащие углы прямоугольника:

In[9]:=

GetPartsOfAnImageRU_18.gif

Out[9]=

GetPartsOfAnImageRU_19.gif

Теперь можно извлечь выбранную область рисунка:

In[10]:=

GetPartsOfAnImageRU_20.gif

Out[10]=

GetPartsOfAnImageRU_21.gif