Фотоотчет о поездке
Изображение может быть сохранено в виде файла, содержащего как пиксели, так и метаинформацию. С помощью функции Import, вы можете получить эту метаинформацию и воспользоваться программируемыми аспектами фотографии.
Загрузим и проанализируем коллекцию фотографий, сделанных во время визита в Лиссабон.
In[1]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_17.png)
files = Map[img \[Function] ExampleData[img, "FilePath"],
ExampleData[{"TestImageSet", "Lisbon2016"}]];
Рассмотрим гистограмму дат, в которые были сделаны снимки.
In[2]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_18.png)
dates = Map[file \[Function] Import[file, "DateTime"], files];
In[3]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_19.png)
DateHistogram[dates, Quantity[1, "Hours"]]
Out[3]=
![](assets.ru/a-trip-at-a-glance/O_11.png)
Рассмотрим коллаж миниатюр.
In[4]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_20.png)
thumbnails =
ExampleData[{"TestImageSet", "Lisbon2016"}, "ThumbnailList"];
In[5]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_21.png)
ImageCollage[thumbnails, Method -> "Columns", ImagePadding -> 2]
Out[5]=
![](assets.ru/a-trip-at-a-glance/O_12.png)
Представим фотографии на временной шкале.
In[6]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_22.png)
TimelinePlot[MapThread[Labeled, {dates, thumbnails}],
PlotLayout -> "Vertical", ImageSize -> Medium]
Out[6]=
![](assets.ru/a-trip-at-a-glance/O_13.png)
Объеденим все данные.
In[7]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_23.png)
gps = Map[file \[Function] Import[file, "GeoPosition"], files];
In[8]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_24.png)
ds = Dataset[
MapThread[
AssociationThread[{"Thumbnail", "DateTime",
"GeoPosition"} -> {##}] &, {thumbnails, dates, gps}]]
Out[8]=
![](assets.ru/a-trip-at-a-glance/O_14.png)
Обозначим места, где были сделаны изображения, на карте.
In[9]:=
![Click for copyable input](assets.ru/a-trip-at-a-glance/In_25.png)
GeoGraphics[
MapThread[
GeoMarker, {Normal[ds[All, "GeoPosition"]],
Normal[ds[All, "Thumbnail"]]}], ImageSize -> Medium]
Out[9]=
![](assets.ru/a-trip-at-a-glance/O_15.png)