Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 602

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Есть изображения одинаковые по содержанию, но разные по ширине/высоте, если из картинки размером 1600x900 я вырежу кусок, то как потом этот кусок найти в таком же изображении, но с другим разрешением там 1920x1200 или 1024x768, вопрос не в самом алгоритме поиска, а как полученный кусок изображения при одном разрешении подогнать к необходимому размеру?

sergei Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: sergei (статус: Посетитель)
Вопрос отправлен: 15 октября 2015, 13:40
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, sergei!
Приведу кусок кода из своего проекта по распечатке картинки нужного размера на принтере.
Аналогично масштабируете свои картинки.

Приложение:
  1. Var B:TBitmap;
  2. R:TRect;
  3. Begin
  4. B:=TBitmap.Create;
  5. B.LoadFromFile('Logotip.bmp');
  6. R.Left:=100;
  7. R.Top:=0;
  8. R.Right:=R.Left+100;
  9. R.Bottom:=100;
  10. Printer.Canvas.StretchDraw(R,B);
  11. B.Free;
  12. End;


Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 15 октября 2015, 20:13
Оценка за ответ: 4

Комментарий к оценке: Спасибо за приведенный код, только не совсем понял как его использовать в моей проблеме, вот в битмап я загрузил нужный кусок изображения от изображения 1600x900, и далее чтобы его масштабировать скажем до такого куска изображения как он бы выглядел на изображении размером 1920x1200 какие значения мне нужно подставить, это каким образом вычисляется?

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 15 октября 2015, 22:25; участников в обсуждении: 2.
ANBsoft

ANBsoft (статус: Студент), 15 октября 2015, 21:10 [#1]:

Нужно сделать одинакового размера,
соответственно и задавайте одинаковые размеры:
Var B1,B2:TBitmap;
    R:TRect;
Begin
  B1:=TBitmap.Create;
  B1.LoadFromFile('Logotip.bmp');
  R.Left:=0;
  R.Top:=0;
  R.Right:=1920;
  R.Bottom:=1200;
  B2:=TBitmap.Create;
  B2.Width:=1920;
  B2.Height:=1200;
  B2.Canvas.StretchDraw(R,B1);
  B2.SaveToFile('Test.bmp');
  B2.Free;
  B1.Free;
End;
Только картинки не будут одинаковыми для поточечного сравнения.
При преобразованиях возникают искажения.
Они будут очень похожи, но все-таки разные.
sergei

sergei (статус: Посетитель), 15 октября 2015, 22:25 [#2]:

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

27 декабря 2015, 13:56: Статус вопроса изменён на решённый (изменил модератор DNK)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 16 ноября 2024, 15:39
Выполнено за 0.02 сек.