roboforum.ru

Технический форум по робототехнике.
Текущее время: 04 дек 2024, 11:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Задача по OpenCV.
СообщениеДобавлено: 28 янв 2013, 14:44 
Не в сети

Зарегистрирован: 28 янв 2013, 14:35
Сообщения: 3
Ребят, кому не сложно, помогите пожалуйста с решением задачи.
Вывести изображение:
1. При первом одинарном щелчке убрать синий цвет.
2. При втором убрать красный цвет.
3. При третьем щелчке зеленый.
4. при двойном-восстановить изображение.

По возможности, объясните ход задачи, пожалуйста. Заранее благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача по OpenCV.
СообщениеДобавлено: 28 янв 2013, 18:04 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
ёпрст.

загрузка и вывод картинки - http://robocraft.ru/blog/computervision/268.html
обработка мышки - http://robocraft.ru/blog/computervision/278.html

разбить на каналы - cvCvtPixToPlane()

профит.

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача по OpenCV.
СообщениеДобавлено: 29 янв 2013, 08:55 
Не в сети

Зарегистрирован: 28 янв 2013, 14:35
Сообщения: 3
Я не могу собрать все это в кучу, не могли бы вы подробнее объяснить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача по OpenCV.
СообщениеДобавлено: 29 янв 2013, 10:50 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
просто пробуйте и спрашивайте если что-то конкретно не получается.

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача по OpenCV.
СообщениеДобавлено: 29 янв 2013, 13:16 
Не в сети

Зарегистрирован: 28 янв 2013, 14:35
Сообщения: 3
На данный момент у меня получился следующий код:
Код:
#include "stdafx.h"
#include "stdafx.h"
#include "stdlib.h"
#include "highgui.h"
#include "cv.h"

using namespace cv;

int _tmain(int argc, CHAR** argv[])
{
    namedWindow("Input image",1);
   Mat image = imread("D:\\1.jpg"); //загрузка входного изображения
   imshow( "Input image", image );
   waitKey(0);
   vector<Mat> chan(4);
   split(image, chan);
   //разбиение image на три канала channle
   imshow( "Input image", chan[0] ); waitKey(0);
   imshow( "Input image", chan[1] ); waitKey(0);
   imshow( "Input image", chan[2] ); waitKey(0);
   //Теперь переименуем синий канал в красный, а красный в синий
   chan.push_back(chan[0]);
   chan[0]=chan[2];
   chan[2]=chan[3];
   //Объединим каналы
   merge(chan, image);
   //Посмотрим результат замены
   imshow( "Input image", image);waitKey(0);
   //Измеим значение яркости канала с синим цветом
   chan[0]+=100;
   chan[2]*=1.1;
   merge(chan, image );
   imshow( "Input image", image);waitKey(0);
   destroyWindow("new");
}

в какую часть кода мне нужно вставить обработку мышки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задача по OpenCV.
СообщениеДобавлено: 29 янв 2013, 14:16 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
порядок такой:
1. повесить обработчик мышки,
2. обработку картинки (которая зависит от нажатия мышки) обернуть в цикл.

стандартный пример - http://code.opencv.org/projects/opencv/ ... lldemo.cpp
только если не нужно ждать нажатия клавиши - нужно внутри цикла вместо waitKey(0); писать waitKey(33);

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO