![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 08.10.2009
Сообщений: 16
|
![]()
уважаемые программисты,возник маленький вопросик,искал в интернете,но чего-то не разобрался сам.Есть изображение с черным фоном,на нем могут находиться цвета либо красный(RGB 255 0 0),либо зеленый(RGB 0 255 0),либо желтый(RGB 255 255 0),так вот нужно быстро просканировать изображение на ниличе этих цветов,и указать какой именно цвет находится на изображении.
Спасибо большое!!! |
![]() |
![]() |
![]() |
#2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
В цикле проходишся по каждому пикселю имея с собой три флага и смотришь Image1.Picture.BitMap.Canvas.Pixels[X,Y]
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 08.10.2009
Сообщений: 16
|
![]()
насколько я начитался,canvas достаточно медленная функция,а как насчет реализации scanline'а?
|
![]() |
![]() |
![]() |
#4 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Вот недавно была моя тема с проблемой замены цвета: 55 582 пикселя за 2 секунды. Суди сам.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 08.10.2009
Сообщений: 16
|
![]()
а ссылочку на топик дай пожалуйста...
|
![]() |
![]() |
![]() |
#6 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Вот скан: http://www.programmersforum.ru/showt...light=ScanLine
Вот моя тема: http://www.programmersforum.ru/showthread.php?t=71497
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 08.10.2009
Сообщений: 16
|
![]()
Огромное спасибо,очень полезные ссылочки.
Последний раз редактировалось mihali4; 20.11.2009 в 13:25. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 08.10.2009
Сообщений: 16
|
![]()
В чем ошибка?
procedure TForm1.Button1Click(Sender: TObject); var bmp: TBitmap; DC: HDC; X,Y:SmallInt; begin bmp:=TBitmap.Create; bmp.Height:=9; bmp.Width:=57; DC:=GetDC(0); bitblt(bmp.Canvas.Handle, 0, 0, 57, 9,DC, 854, 116, SRCCOPY); bmp.SaveToFile('Screen.bmp'); ReleaseDC(0, DC); For Y:=0 to bmp.Height - 1 do For X:=0 to bmp.Width - 1 do Begin If bmp.Canvas.Pixels[X,Y] = $FF0000 Then ShowMessage('Red!'); End; end; Копирует изображение экрана,успешно обрезает по нужным координатам,но не находит красный цвет в этом изображении,хотя точно есть там...помогите,пожалуйста.Спасибо! |
![]() |
![]() |
![]() |
#9 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Точно есть 0xff0000 ? Или вы на "глаз" решили что там есть красный ?
p.s. уже привык к C++ и не вспоминаю такие проблемы, а у вас случаем утечки нет ? TBitmap создали, поработали а где .Free ? |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 11.04.2009
Сообщений: 277
|
![]()
if image1.picture.bitmap.canvas.pixels[1,1]=RGB(000000) then ...
непроверял но должно работать |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конвертер из png в jpg или gif или bmp | Квэнди | Мультимедиа в Delphi | 8 | 04.10.2011 22:26 |
Узнать цвет пикселя в Timage, если там не bmp а jpeg? | TwiX | Общие вопросы Delphi | 4 | 27.09.2009 19:11 |
Как определить находится ли диск в системе? | dolphin705 | Общие вопросы Delphi | 6 | 08.07.2009 12:25 |
Задана точка с координатами (x, y). Определить, на какой оси или в каком квадранте она находится. С++ | Wia | Помощь студентам | 4 | 13.12.2008 14:17 |