Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Функции FindColor и FindImage
zzzzza
сообщение 13.11.2017, 3:09
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 13.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.677
Возраст: 25



Всем привет!

У меня возник такой вопрос: а есть где-нибудь в открытом доступе или может кто-нибудь скинуть исходник функций "FindColor" и "FindImage"? Не важно на каком языке ("C", "C++", "Pascal", "Delphi").

Очень интересует быстрый поиск у "FindColor".

Заранее спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 13.11.2017, 6:38
Сообщение #2


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20894
Пользователь №: 16.156



GetPixel/BitBlt
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zzzzza
сообщение 13.11.2017, 8:16
Сообщение #3


*

Registred
Сообщений: 4
Регистрация: 13.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.677
Возраст: 25



Cockney, GetPixel при оформление Aero слишком тормозит. Использую "BitBlt":

Код

    COLORREF pixel;
     BITMAPINFO BMI={0};
     HDC hGDC=GetDC(hWnd);
     int Bitp=GetDeviceCaps(hGDC, BITSPIXEL);
     HDC hTmpDC=CreateCompatibleDC(hGDC);
     HBITMAP hTmpBmp=CreateCompatibleBitmap(hGDC,1,1);
     SelectObject(hTmpDC,hTmpBmp);
     BitBlt(hTmpDC,0,0,1,1,hGDC,x,y,SRCCOPY);
     BMI.bmiHeader.biSize = sizeof(BMI.bmiHeader);
     BMI.bmiHeader.biWidth = 1;
     BMI.bmiHeader.biHeight = 1;
     BMI.bmiHeader.biPlanes = 1;
     BMI.bmiHeader.biBitCount = Bitp;
     BMI.bmiHeader.biCompression = BI_RGB;
     BMI.bmiHeader.biSizeImage=Bitp/8;
     BMI.bmiHeader.biClrUsed = 0;
     BMI.bmiHeader.biClrImportant = 0;
     int TMP=GetDIBits(hTmpDC,hTmpBmp,0,1,&pixel,&BMI, DIB_RGB_COLORS);
     pixel&=0xFFFFFF;
     ReleaseDC(hWnd,hGDC);
     DeleteDC(hTmpDC);
     DeleteObject(hTmpBmp);

     pixel=RGB(GetBValue(pixel), GetGValue(pixel), GetRValue(pixel));
     return pixel;


Но режим 2 в UOpilot работает все равно быстрее. В чем секрет?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 13.11.2017, 9:48
Сообщение #4


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20894
Пользователь №: 16.156



GetDIBBits вроде не нужен, приеду домой, посмотрю нароботки. Если найду - скину.

BMI тоже не нужен.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zzzzza
сообщение 13.11.2017, 11:10
Сообщение #5


*

Registred
Сообщений: 4
Регистрация: 13.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.677
Возраст: 25



Спасибо, жду.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 13.11.2017, 11:44
Сообщение #6


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20894
Пользователь №: 16.156



HDC destHdc = CreateCompatibleDC()
HBITMAP destHBmp = CreateCompatibleBitmap()
SelectObject(destHdc, destHBmp)
BitBlt()
BITMAP map;
GetObject(destHBmp, sizeof(BITMAP), &map)

Дальше в map.bits должно лежать все изображение в формате BGR. Верти как хочешь дальше.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zzzzza
сообщение 13.11.2017, 22:10
Сообщение #7


*

Registred
Сообщений: 4
Регистрация: 13.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.677
Возраст: 25



Спасибо, буду пробовать!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 16:42
Designed by Nickostyle