|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.08.2010, 03:18 | #1 |
Пользователь
Регистрация: 07.08.2010
Сообщений: 13
|
Быстрый парсинг картинки
У меня есть картинка в Graphics::TBitmap - надо найти хотя бы один пиксель заданного цвета
Код работает слишком медленно. Как ускорить ? Код:
|
26.08.2010, 03:43 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ScanLine юзаем
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.08.2010, 00:08 | #3 | |
Пользователь
Регистрация: 07.08.2010
Сообщений: 13
|
провел замеры времени - скан лайн тормозит
Код:
Цитата:
вызов сканлайна - 31мс макет парсинга со сканлайн - 16.8 сек == 35мс на итерацию парсинг через пиксели - 1.9 сек |
|
27.08.2010, 10:10 | #4 | |
Разрабатываюсь....
Пользователь
Регистрация: 16.11.2008
Сообщений: 68
|
Не может такого быть, чтобы доступ через указатель был медленнее доступа через методы класса. И у TImage нет свойства ScanLine.
Вот Код:
Цитата:
|
|
28.08.2010, 17:56 | #5 | ||||
Пользователь
Регистрация: 07.08.2010
Сообщений: 13
|
1)
Цитата:
Код:
Цитата:
Цитата:
Код:
Скомпилировал Ваш код в Embarcadero® C++Builder® 2010 Version 14.0.3513.24210 Цитата:
4) Мне надо распознать много картинок, потому можно вынести ScanLine в предподсчет, а в самом парсинге работать только с указателями. Проблема решена. Большое спасибо |
||||
01.09.2010, 17:55 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
на будущее, вызвали ScanLine и обрабатывайте всю строку через указатель, а не по тысяче раз вызывать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
09.02.2011, 12:27 | #7 | |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Сам начал С++ учить, работаю с указателями сейчас. Сделал вот так:
Код:
Цитата:
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
|
09.02.2011, 12:52 | #8 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Из недочётов хотелось бы отметить непонятно зачем использованный void-указатель и приведение типов в стиле C. А также отсутствие комментариев.
Также, разве должно быть не void paint_wireless(const Graphics::TBitmap *changeble_bmp, TMemo *memo)?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su Последний раз редактировалось Obey-Kun; 09.02.2011 в 12:59. |
09.02.2011, 20:54 | #9 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Obey-Kun, использовал нетипизированный указатель потому, что скан лайн возвращает такой же (сейчас попробую просто unsigned char), объяни пожалуйста почему:
Код:
P.S. Исправил, куда понятнее стал код, а время не изменилось.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
Последний раз редактировалось ImmortalAlexSan; 09.02.2011 в 21:03. |
09.02.2011, 21:01 | #10 | ||
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Цитата:
Цитата:
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отображение картинки на кнопке WPF. Загрузка картинки из ресурсов. Проблема с Uri. | Casper-SC | Общие вопросы .NET | 0 | 27.06.2010 23:11 |
Быстрый запуск. | Chudo4258 | Помощь студентам | 4 | 09.04.2010 20:30 |
Быстрый перевод сайта ! | Slappy | Помощь студентам | 0 | 24.01.2010 16:09 |
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки | RPGer | Мультимедиа в Delphi | 6 | 20.10.2008 19:54 |
Быстрый поиск по индексу | valerij | Microsoft Office Excel | 1 | 21.04.2008 11:04 |