Перейти к содержимому
Compvision.ru

astrgan

Пользователи
  • Количество публикаций

    35
  • Зарегистрирован

  • Посещение

  • Days Won

    2

astrgan last won the day on February 5 2014

astrgan had the most liked content!

Репутация

2 Новичек

О astrgan

  • Звание
    Эксперт
  1. С помощью этого кода хочу подготовить картинки для обучения нейросети. #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); } } Но бывает вылетает это
  2. нейроные сети в OpenCV

    Smorodov Спасибо большое)
  3. нейроные сети в OpenCV

    Что-то не могу до конца разобраться. Может кто-нибудь покажет как например в opencv создать сеть решающею XOR?
  4. нейроные сети в OpenCV

    Если использовать нейросеть для распознавания изображений (с предварительной обработкой на OpenCV), то какой библиотекой лучше пользоваться? OpenCV или какой-нибудь другой?
  5. нейроные сети в OpenCV

    Здравствуйте. Подскажите какой-нибудь пример с использованием нейронных сетей из библиотеки OpenCV.
  6. OpenCV и Qt

    Если использовать 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), кажется что на ровном месте производительность буду терять.
  7. Хмм. В примерах которые идут с библиотекой OpenCV есть два исходника которые демонстрируют работу каскада Хаара (находятся и обводятся в круг глаза и лицо). Это objectDetection2.cpp и objectDetection.cpp. Пример objectDetection.cpp безбожно тормозит, а objectDetection2.cpp летает. Я почему-то всегда запускал objectDetection.cpp и мучился)
  8. Что-то ссылка не открывается(
  9. Делал с помощью eclipse (в Ubuntu)там вроде такого нет. p.s. проверю позже на MS VS.
  10. Без манипуляций на много лучше. Можно сказать не тормозит.
  11. проблема решилась
  12. Здравствуйте. Пытаюсь обучить каскад с помощью программы 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
  13. Здравствуйте Запустил пример который идет вместе с библиотекой Object Detection. Ищет лица, глаза и обводит их синим кругом. Вообщем все нечего и даже работает, вот только какой-то он тормознутый, видео отстает где-то на 2 сек. Это так и должно быть? Каскады на androide вроде быстрее работают, может рисование кругов замедляет его работу?
  14. Получилось сделать так: 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, хотя может просто я ошибаюсь и делал также.
  15. 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;
×