Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти отличие в 2 картинках 
:(
    Опции темы
rthsobakas
Дата 5.4.2010, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Дано форма, 3 pictureBox(в 2 загружены картинки), кнопка.
Надо пройтись по всем пикселам картинок и проксорить(XOR) их, записать в 3 pictureBox значение. То есть надо найти отличие.
Код

 for (int i = 0; i <pictureBox1->Size.Height; i++)
                for (int j = 0; j <pictureBox1->Size.Width; j++)
                {
                   // Получаю цвет пиксела 1 картинки
                  // Получаю цвет пиксела 2 картинки
                  // Произвожу XOR пикселов.
                  // Вывожу в 3 картинку этот пиксел.
                }


Размеры pictureBox` ов одинаковые.

Проблема в том что я не знаю как получить значение цвета пиксела в pictureBox по определенной координате. И записать в новый.То есть то что в комментах не знаю как оформить.
PM   Вверх
Skalik
Дата 5.4.2010, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 20.3.2008
Где: Харьков

Репутация: нет
Всего: нет



Вот так можно зарисовать определенный пиксел: 
Код

e.Graphics.FillRectangle(Brushes.Black, i, j, 1, 1);

Вот так можно получить пиксель: 
Код
Bitmap bmp = new Bitmap(pictureBox.Image);
Color color =  bmp.GetPixel(x, y);


Это сообщение отредактировал(а) Skalik - 5.4.2010, 22:22
PM MAIL ICQ   Вверх
rthsobakas
Дата 8.4.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Код

Bitmap bmp1 = gcnew Bitmap(pictureBox1->Image);
Bitmap bmp2 = gcnew Bitmap(pictureBox2->Image);
Bitmap bmp3 = gcnew Bitmap(pictureBox3->Image);
 
         for (int i = 0; i <pictureBox1->Size.Height; i++)
                for (int j = 0; j <pictureBox1->Size.Width; j++)
                {                       
                    Color color1 =  bmp1.GetPixel(j, i);
                    Color color2 =  bmp2.GetPixel(j, i);
                    Color color3 =  Color.FromArgb(abs(color1.R - color2.R), abs(color1.G - color2.G), abs(color1.B - color2.B));
                    bmp3.SetPixel(j, i, color3);
                }


ошибка в

Код

Color color3 =  Color.FromArgb(abs(color1.R - color2.R), abs(color1.G - color2.G), abs(color1.B - color2.B));


Цитата

: error C2275: System:rawing::Color: недопустимое использование этого типа в качестве выражения
1> d:\windows\microsoft.net\framework\v2.0.50727\syst em.drawing.dll: см. объявление 'System:rawing::Colo
r'
что она значит?

PM   Вверх
rthsobakas
Дата 11.4.2010, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Если так сделать(C++ Код)

Код

Color color3 =  System::Drawing::Color::FromArgb(abs(color1.A - color2.A),abs(color1.R - color2.R), abs(color1.G - color2.G), abs(color1.B - color2.B));  



То 

Цитата

Необработанное исключение типа "System.NullReferenceException" произошло в System.Drawing.dll

Кто-нибудь знает как с этой ошибкой бороться?


http://msdn.microsoft.com/ru-ru/library/sy...eexception.aspx
тут,нашел но так и не понял суть

Цитата

Исключение, возникающее при попытке разыменования указателя NULL на объект.

Пространство имен: System
Сборка: mscorlib (в mscorlib.dll)


Это сообщение отредактировал(а) rthsobakas - 11.4.2010, 10:28
PM   Вверх
rthsobakas
Дата 11.4.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



вот код. Можете посмотреть? Почему различие не выделяет.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ballistic_Mishen.rar 20,57 Kb
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.