Pull to refresh

Comments 23

А если еще выявлять ключевой объект сцены с наибольшим весом и делать обрезку с учетом правил композиции и золотого сечения?

Как-то так:



Извините, телефоном кропал

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

image

Собрал код за репозиторием: виснет при попытке уменьшить окно, с виду, просто растягивает изображения при увеличении.

Спасибо за совет. Но похоже я сам разобрался: оно просто невероятно медленно.

upd: (извините за спам). Нужно делать cargo run --release. Ускоряет на несколько порядков.

Если интересна реализация на C#, то у меня есть: Seam-Carving-Advanced. Реализация переписана с C++ кода CAIR. Для него, кстати, также доступен враппер.


В качестве дополнительных возможностей есть выбор функции энергии (в статье используется только Sobel), параметр Forward Energy, который позволяет уменьшить зубчатость. Также доступен параметр HD, который влияет на соотношение качество/производительность и написана многопоточная версия алгоритма.

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


Seam Carving можно использовать и для видео. В этом случае швы вообще будут двухмерными. Интересно, а можно ли для аудио?

Да, что-то типа того. Или для начала ДПФ. Причем резать можно в разных направлениях: как по времени, так и по частотам.

по времени — сомнительная нужда, от сигнала ничего осмысленного не останется.
по частотам — та же история.
максимум как спецэффект для фильма ужасов.

Интересно, а если этому алгоритму необрезанное фото Лены скормить — какую часть тела он посчитает самой важной? :-}

Это безусловно очень изобретательный способ изменения размера изображений, и все же я не хотел бы видеть изображения, искаженные таким образом. Может быть я старомоден, но я все-таки хочу видеть изображение именно так, как его задумал фотограф или художник, и никак иначе.

Цели могут быть разными. Например если нужно из кожи вон сделать квадратное изображение вместо прямоугольного. Данный способ для этого подойдет как нельзя кстати: быстро и приемлимо.

Даже когда «из кожи вон», нужно делать как правильно. Этот алгоритм неминуемо приводит к искажению представления о пропорциях объектов, может привести к обезображиванию лиц, порче произведений искусства, и даже искажению важной топографической информации, диаграмм и графиков. Место этому алгоритму — среди курьезов информатики. Я уверен, через какое-то время все будут со смехом вспоминать эту идею, а здесь, на Хабре, будет статья: "… Представьте, в середине 2010-х нашлись 2 идиота, предложившие уменьшать изображение таким вот образом"…
image

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


Я уверен, через какое-то время все будут со смехом вспоминать эту идею, а здесь, на Хабре, будет статья: "… Представьте, в середине 2010-х нашлись 2 идиота, предложившие уменьшать изображение таким вот образом"…

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

Sign up to leave a comment.

Articles