astrgan
Пользователи-
Количество публикаций
35 -
Зарегистрирован
-
Посещение
-
Days Won
2
astrgan last won the day on February 5 2014
astrgan had the most liked content!
Репутация
2 НовичекО astrgan
-
Звание
Эксперт
-
С помощью этого кода хочу подготовить картинки для обучения нейросети. #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <vector> #include <iostream> #include <sstream> int main() { std::vector<cv::Vec3f> vecCircles; std::vector<cv::Vec3f>::iterator itrCircles; cv::VideoCapture capWebcam; cv::Mat matOriginal,matProcessed; int name = 0; std::string path = "/home/alex/development/"; std::vector<int> compression_params; //vector that stores the compression parameters of the image compression_params.push_back(CV_IMWRITE_JPEG_QUALITY); //specify the compression technique compression_params.push_back(98); //specify the compression quality capWebcam.open(0); while(1){ capWebcam.read(matOriginal); cv::inRange(matOriginal, cv::Scalar(0,0,175), cv::Scalar(100,100,256),matProcessed); cv::HoughCircles(matProcessed, vecCircles, CV_HOUGH_GRADIENT, 2, matProcessed.rows / 4,100,50,10,400); for (itrCircles = vecCircles.begin(); itrCircles != vecCircles.end(); itrCircles++){ int x = (int)(*itrCircles)[0]; int y = (int)(*itrCircles)[1]; int w = 2*(int)(*itrCircles)[2]; int h = 2*(int)(*itrCircles)[2]; cv::Rect rect(x-w/2,y-h/2,w,h); cv::rectangle(matProcessed, rect, cv::Scalar(0,0,255), 3); cv::rectangle(matOriginal, rect, cv::Scalar(0,0,255), 3); std::ostringstream out; out<<path<<name<<".jpg"; cv::imwrite(out.str(), cv::Mat(matOriginal,rect),compression_params); std::cout<<"save: "<< out.str() <<std::endl; name++; } cv::imshow("matProcessed",matProcessed); cv::imshow("matOriginal",matOriginal); cv::waitKey(35); } } Но бывает вылетает это
-
Smorodov Спасибо большое)
-
Что-то не могу до конца разобраться. Может кто-нибудь покажет как например в opencv создать сеть решающею XOR?
-
Если использовать нейросеть для распознавания изображений (с предварительной обработкой на OpenCV), то какой библиотекой лучше пользоваться? OpenCV или какой-нибудь другой?
-
Здравствуйте. Подскажите какой-нибудь пример с использованием нейронных сетей из библиотеки OpenCV.
-
Если использовать OpenCV совместно с Qt, то без подобного преобразования не обойтись? QImage mat2qimage(const cv::Mat& mat) { cv::Mat rgb; cv::cvtColor(mat, rgb, CV_BGR2RGB); return QImage((const unsigned char*)(rgb.data), rgb.cols, rgb.rows, QImage::Format_RGB888); }; P.S. не нравится что приходится применять cvtColor(mat, rgb, CV_BGR2RGB), кажется что на ровном месте производительность буду терять.
-
Хмм. В примерах которые идут с библиотекой OpenCV есть два исходника которые демонстрируют работу каскада Хаара (находятся и обводятся в круг глаза и лицо). Это objectDetection2.cpp и objectDetection.cpp. Пример objectDetection.cpp безбожно тормозит, а objectDetection2.cpp летает. Я почему-то всегда запускал objectDetection.cpp и мучился)
-
Что-то ссылка не открывается(
-
Делал с помощью eclipse (в Ubuntu)там вроде такого нет. p.s. проверю позже на MS VS.
-
Без манипуляций на много лучше. Можно сказать не тормозит.
-
проблема решилась
-
Здравствуйте. Пытаюсь обучить каскад с помощью программы opencv_traincascade.exe, но она выдает ошибку) Parameters can not be written, because file haarcascade/params.xml can not be opened. Никак не могу понять в чем дело. Запускаю вот так: opencv_traincascade.exe -data haarcascade -vec samples.vec -bg Bad.dat -numStages 16 -minhitrate 0.999 -maxFalseAlarmRate 0.4 -numPos 200 -numNeg 500 -w 20 -h 20 -mode ALL -precalcValBufSize 1024 -precalcIdxBufSize 1024
-
astrgan начал следование за Тормозит библиотечный пример (Object Detection)
-
Здравствуйте Запустил пример который идет вместе с библиотекой Object Detection. Ищет лица, глаза и обводит их синим кругом. Вообщем все нечего и даже работает, вот только какой-то он тормознутый, видео отстает где-то на 2 сек. Это так и должно быть? Каскады на androide вроде быстрее работают, может рисование кругов замедляет его работу?
-
Получилось сделать так: public Mat onCameraFrame(CvCameraViewFrame inputFrame) { Mat rgbaInnerWindow; Mat mIntermediateMat= new Mat(); Mat rgba = inputFrame.rgba(); Size sizeRgba = rgba.size(); int rows = (int) sizeRgba.height; int cols = (int) sizeRgba.width; int left = cols / 8; int top = rows / 8; int width = cols * 3 / 4; int height = rows * 3 / 4; rgbaInnerWindow = rgba.submat(top, top + height, left, left + width); Imgproc.cvtColor(rgbaInnerWindow, mIntermediateMat, Imgproc.COLOR_RGBA2GRAY); Imgproc.cvtColor(mIntermediateMat, rgbaInnerWindow, Imgproc.COLOR_GRAY2BGRA); rgbaInnerWindow.release(); return rgba; } Но вроде раньше получалось сделать это как-то по проще (меньше строк) в вер 4.2.3, хотя может просто я ошибаюсь и делал также.
-
Canny сделать получилось (собственно я его скопировал) Mat rgbaInnerWindow; Mat mIntermediateMat= new Mat(); Mat rgba = inputFrame.rgba(); Size sizeRgba = rgba.size(); int rows = (int) sizeRgba.height; int cols = (int) sizeRgba.width; int left = cols / 8; int top = rows / 8; int width = cols * 3 / 4; int height = rows * 3 / 4; rgbaInnerWindow = rgba.submat(top, top + height, left, left + width); Imgproc.Canny(rgbaInnerWindow, mIntermediateMat, 80, 90); Imgproc.cvtColor(mIntermediateMat, rgbaInnerWindow, Imgproc.COLOR_GRAY2BGRA, 4); rgbaInnerWindow.release(); return rgba; А вот чернобелое неработает, не могу понять почему Mat rgbaInnerWindow; Mat mIntermediateMat= new Mat(); Mat rgba = inputFrame.rgba(); Size sizeRgba = rgba.size(); int rows = (int) sizeRgba.height; int cols = (int) sizeRgba.width; int left = cols / 8; int top = rows / 8; int width = cols * 3 / 4; int height = rows * 3 / 4; rgbaInnerWindow = rgba.submat(top, top + height, left, left + width); Imgproc.cvtColor(rgbaInnerWindow, rgbaInnerWindow, Imgproc.COLOR_RGBA2GRAY, 1); rgbaInnerWindow.release(); return rgba;