Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 13:27   #1
banderas.antonio
Новичок
Джуниор
 
Регистрация: 29.04.2011
Сообщений: 1
Восклицание Поиск фрагмента изображения на картинке

Доброго всем времени суток.
Задача стоит следующая, есть скриншот в виде Bitmap и есть кнопка в bmp файле. Необходимо найти координаты этой кнопки на скриншоте.
Попиксельный поиск самый крайний вариант, так как это очень медленно.
В С# новичек, не пинайте сильно. Гугл уже неделю мучаю.
banderas.antonio вне форума Ответить с цитированием
Старый 07.05.2011, 00:06   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Тут в общем-то надо не по C# копать, а в сторону работы с матрицами (математика простая), в крайнем случае алгоритмов OCR, работа с изображениями и т.п. C# лишь средство реализации поставленной задачи, готового ничего для Вашей задачи в .NET Framework нету, насколько я знаю.
Spawn™Production® вне форума Ответить с цитированием
Старый 07.05.2011, 17:31   #3
SaNeKBF
Пользователь
 
Аватар для SaNeKBF
 
Регистрация: 17.12.2010
Сообщений: 35
По умолчанию

Я вот тоже не про в си шарп. И интересует возможность поиска изображений в битмап. Читал, что попиксельое сравнение долго.
И всетаки вижу это так.
Загнать в масив все х, y, нейм пикселя и сравнить 2 масива. Так понимаю, изобраение в бит мапе и так хранится масивом. Потому надо както этим масивом воспользоватся %)
Гдето читал, что для ускорение попиксельного поиска нужно разбить условно экран на зоны %)
Вот такие нубские познания, так что тоже буду благодарен любой информации )

Последний раз редактировалось SaNeKBF; 07.05.2011 в 17:33.
SaNeKBF вне форума Ответить с цитированием
Старый 07.05.2011, 18:45   #4
SaNeKBF
Пользователь
 
Аватар для SaNeKBF
 
Регистрация: 17.12.2010
Сообщений: 35
По умолчанию

Кстати, для ускорения обработки используют метод Локбит
Вот ссылка одна http://www.vbforums.com/showthread.php?t=358917
Вот пример для измения картинки рабочий
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ДляБольшихРисунков
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


private void Form1_Paint(object sender, PaintEventArgs e)
{
    // Создаем новый bitmap.
    Bitmap bmp = new Bitmap("c:\\fakePhoto.jpg");

    // Загкрепляем bitmap's bits.  
    Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
    // Блокируем обьект в системной памяти. Пока непонятно для чего )
    System.Drawing.Imaging.BitmapData bmpData =
        bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite,
        bmp.PixelFormat);

    // Get the address of the first line.
    IntPtr ptr = bmpData.Scan0;

    // Declare an array to hold the bytes of the bitmap.
    int bytes = Math.Abs(bmpData.Stride) * bmp.Height;
    byte[] rgbValues = new byte[bytes];

    // Копируем RGB значения в масив.
    System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);

    // Set every third value to 255. A 24bpp bitmap will look red.  
    for (int counter = 2; counter < rgbValues.Length; counter += 3)
        rgbValues[counter] = 255;

    // Copy the RGB values back to the bitmap
    System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);

    // Unlock the bits.
    bmp.UnlockBits(bmpData);

    // Прорисовует изменненый рисунок
    e.Graphics.DrawImage(bmp, 0, 0);
}






    }
}
Сам буду еще разбиратся %)
SaNeKBF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск изображения в RichEdit artemavd Общие вопросы Delphi 6 23.04.2011 09:45
вырезание фрагмента изображения DeDoK Общие вопросы Delphi 5 12.09.2010 01:00
Поиск фрагмента по Lixtbox'у. Pavarotti Общие вопросы Delphi 15 09.08.2010 12:25
Поиск объекта на картинке Terran Общие вопросы Delphi 3 21.05.2010 16:35
Поиск и выделение фрагмента в вордовском документе Bobby Общие вопросы Delphi 1 17.04.2009 17:07