roboforum.ru

Технический форум по робототехнике.

Задача по OpenCV.

Задача по OpenCV.

Кирилл91 » 28 янв 2013, 14:44

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

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

Re: Задача по OpenCV.

noonv » 28 янв 2013, 18:04

ёпрст.

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

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

профит.

Re: Задача по OpenCV.

Кирилл91 » 29 янв 2013, 08:55

Я не могу собрать все это в кучу, не могли бы вы подробнее объяснить?

Re: Задача по OpenCV.

noonv » 29 янв 2013, 10:50

просто пробуйте и спрашивайте если что-то конкретно не получается.

Re: Задача по OpenCV.

Кирилл91 » 29 янв 2013, 13:16

На данный момент у меня получился следующий код:
Код: Выделить всёРазвернуть
#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.

noonv » 29 янв 2013, 14:16

порядок такой:
1. повесить обработчик мышки,
2. обработку картинки (которая зависит от нажатия мышки) обернуть в цикл.

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


cron
Rambler\'s Top100 Mail.ru counter