Я новичок в OpenCV, и я хочу выбрать конкретный регион в видео/изображении для обнаружения. В моем случае я хочу обнаружить автомобили, которые находятся только на дороге, а не на стоянке.Выбор региона OpenCV
ответ
Ну, выбор автомобилей требует использования данных обучения. Но для выбора ROI (область интереса) достаточно прост:
Рассмотрим img = cv2.imread(image)
В этом случае, где-то в вашем коде, вы можете указать регион, таким образом:
sub_image = img[y:y+h, x:x+w]
Это будет получить ROI, как только вы укажете значения, конечно, не используя «x» или «y», где h - высота, а w - ширина. Помните, что изображения представляют собой только 2D-матрицы.
Используйте CascadeClassifier()
чтобы выбрать автомобиль (ы) с изображений. Документация найдена here. OpenCV поставляется с данными обучения, которые вы можете использовать для создания классификаций в виде файлов XML.
Если вы хотите вручную выбрать интересующую область (ROI), чтобы выполнить некоторую обработку на ней, вы можете попробовать использовать событие щелчка мыши, чтобы выбрать точки старта и остановки вашего ROI.
После того, как у вас есть точка начала и остановки, вы можете использовать ее для извлечения изображения из выбранного региона.
Можно сделать на изображении или захватить видеокадр.
bool roi_captured = false;
Point pt1, pt2;
Mat cap_img;
//Callback for mousclick event, the x-y coordinate of mouse button-up and button-down
//are stored in two points pt1, pt2.
void mouse_click(int event, int x, int y, int flags, void *param)
{
switch(event)
{
case CV_EVENT_LBUTTONDOWN:
{
std::cout<<"Mouse Pressed"<<std::endl;
if(!roi_capture)
{
pt1.x = x;
pt1.y = y;
}
else
{
std::cout<<"ROI Already Acquired"<<std::endl;
}
break;
}
case CV_EVENT_LBUTTONUP:
{
if(!got_roi)
{
Mat cl;
std::cout<<"Mouse LBUTTON Released"<<std::endl;
pt2.x = x;
pt2.y = y;
cl = cap_img.clone();
Mat roi(cl, Rect(pt1, pt2));
Mat prev_imgT = roi.clone();
std::cout<<"PT1"<<pt1.x<<", "<<pt1.y<<std::endl;
std::cout<<"PT2"<<pt2.x<<","<<pt2.y<<std::endl;
imshow("Clone",cl);
got_roi = true;
}
else
{
std::cout<<"ROI Already Acquired"<<std::endl;
}
break;
}
}
}
//In main open video and wait for roi event to complete by the use.
// You capture roi in pt1 and pt2 you can use the same coordinates for processing // //subsequent frame
int main(int argc, char *argv[])
{
int frame_num = 0;
int non_decode_frame =0;
int count = 1, idx =0;
int frame_pos =0;
std::cout<<"Video File "<<argv[1]<<std::endl;
cv::VideoCapture input_video(argv[1]);
namedWindow("My_Win",1);
cvSetMouseCallback("My_Win", mouse_click, 0);
sleep(1);
while(input_video.grab())
{
cap_img.release();
if(input_video.retrieve(cap_img))
{
imshow("My_Win", cap_img);
if(!got_roi)
{
//Wait here till user select the desire ROI
waitKey(0);
}
else
{
std::cout<<"Got ROI disp prev and curr image"<<std::endl;
std::cout<<"PT1"<<pt1.x<<" "<<pt1.y<<std::endl;
std::cout<<"PT2"<<pt2.x<<" "<<pt2.y<<std::endl;
Mat curr_img_t1;
Mat roi2(cap_img,Rect(pt1, pt2));
Mat curr_imgT = roi2.clone();
cvtColor(curr_imgT, curr_img_t1, CV_RGB2GRAY);
imshow("curr_img", curr_img);
// Do remaining processing here on capture roi for every frame
waitKey(1);
}
}
}
}
- 1. Выбор региона GPS в Matlab
- 2. Есть ли название региона или выбор?
- 3. JVectorMap - выбор региона с помощью кнопки
- 4. Выбор контура в OpenCV
- 5. Значительная смена региона/Мониторинг региона
- 6. NumPy/OpenCV 2: как перечислить все пиксели из региона?
- 7. Почему OpenCV не имеет специализированной структуры данных для региона?
- 8. OpenCV VideoWriter Автоматический выбор кодека
- 9. Выбор определенной камеры в OpenCV?
- 10. выбор названия региона на основе стран и коды регионов
- 11. Как ограничить выбор региона в зависимости от стоимости страны?
- 12. C# Выбор Top 2 детали продукта от каждого региона
- 13. улавливать города при выборе региона
- 14. Opencv: выбор пикселя с помощью мыши
- 15. Матрица OpenCV и FileNodeIterator: выбор первой итерации
- 16. Выбор пикселей с наибольшей интенсивностью в OpenCV
- 17. OpenCV: выбор цвета, интенсивности и текстуры изображения
- 18. Как сделать диагональный выбор в OpenCV
- 19. OpenCV: выбор контуров в обработанном изображении
- 20. iOS 6.1.3 Mobile Safari/UIWebView отправляет неправильный код региона региона
- 21. Мониторинг состояния региона Android
- 22. Дважды карта региона
- 23. Международный идентификатор региона
- 24. Разделение географического региона
- 25. Действия Sikuli внутри региона
- 26. Расчет общей площади региона
- 27. Проверка формата региона WP7
- 28. iPhone Карта региона Weirdness
- 29. Разделение региона в Hbase
- 30. Мониторинг региона Android?