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

kames

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

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

  • Посещение

Все публикации пользователя kames

  1. Распознание предмета

    Да ролики прям вдохновили я как раз что то подобное хочу сделать спс=)
  2. Распознание предмета

    окей спс
  3. Распознание предмета

    Чуть подробней можно а то я новичок в этом!А через каскад Хаара можно всё что угодно распознать ?
  4. Распознание предмета

    Можете дать парру ссылок на каскад Хаара
  5. Распознание предмета

    к сожжалению с HSV ещё больше косяков как можно будет доработать алгоритм ?
  6. Распознание предмета

    вот что у меня получилось только криво конечно работает #include "opencv2/core/core.hpp" #include "opencv2/core/mat.hpp" #include "opencv2/gpu/gpu.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/contrib/contrib.hpp" #include "opencv2/video/tracking.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/legacy/legacy.hpp" #include "opencv2/legacy/compat.hpp" #include <iostream> #include <stdlib.h> #include <stdio.h> using namespace cv; using namespace std; void findKubiks(IplImage* image) {CvSize size = cvSize(640,480); CvSeq* lines = 0; // CvScalar hsv_min = cvScalar(0, 34, 109, 0); // CvScalar hsv_max = cvScalar(196, 256, 256, 0); // IplImage * hsv_frame = cvCreateImage(size, IPL_DEPTH_8U, 3); // IplImage* thresholded = cvCreateImage(size, IPL_DEPTH_8U, 1); IplImage* bin = cvCreateImage( cvGetSize(image), IPL_DEPTH_8U, 1); // cvCvtColor(image, hsv_frame, CV_BGR2HSV); // cvInRangeS(hsv_frame, hsv_min, hsv_max, thresholded); cvConvertImage(image, bin, CV_BGR2GRAY);//Перевод в чёрно-белое изображение cvCanny(bin, bin, 50, 200);//Преобразование Кенни для изображения CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* contours=0; int contoursCont = cvFindContours( bin, storage,&contours,sizeof(CvContour),CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0)); contours = cvApproxPoly( contours, sizeof(CvContour), storage, CV_POLY_APPROX_DP, 3, 1 ); lines = cvHoughLines2( bin, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 50, 50, 10 );//Преобразование Хафа для линии if(contours==NULL); { } for( CvSeq* current = contours; current != NULL; current = current->h_next ){ double area = 0;double perim = 0; area = fabs(cvContourArea(current)); perim = cvContourPerimeter(current); cout<<"fuk"<<area/perim<<" "; cout<<"fup"<<perim/16<<" "; if (((perim/4>=4*area/perim) && (perim/4<=(4*area/perim*0.05)+(4*area/perim))) ||((perim/16>=area/perim) && (perim/16<=(area/perim*0.05)+(area/perim))) ||((4*area/perim>=perim/4) && (4*area/perim<=(perim/4*0.05)+(perim/4))) ||((area/perim>=perim/16) && (area/perim<=(perim/16*0.05)+(perim/16)))){ cvDrawContours(image, current, cvScalar(255,0, 0), cvScalar(0,255, 0),0,4,8); } } cvReleaseMemStorage(&storage); cvReleaseImage(&bin); } int main(int argc, char* argv[]) { cvNamedWindow("capture"); cvNamedWindow("image"); CvCapture *capture = cvCreateCameraCapture(CV_CAP_ANY); if(capture == NULL) { int height = 620;int width = 440; CvPoint pt = cvPoint( height/4, width/2 ); IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3); cvSet(hw,cvScalar(0,0,0)); CvFont font; cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA); cvPutText(hw, "Проверьте Камеру", pt, &font, CV_RGB(150, 0, 150) ); cvNamedWindow("Fatal ERROR", 0); cvShowImage("Hello World", hw); cvWaitKey(0); } IplImage* frame = 0; while(true){ frame = cvQueryFrame( capture ); cvShowImage("capture", frame); findKubiks(frame); cvShowImage("image", frame); char c = cvWaitKey(1); if (c == 27) {break;} } cvReleaseCapture( &capture ); cvDestroyAllWindows(); }
  7. Распознание предмета

    да всё это должно работать без вмешательства человека нажал на кнопку получил результат
  8. Распознание предмета

    Да первая ссылка норм =)у меня была такая идея ну вообщемне нужно распознать кубик Рубика делаю сначала преобразование в HSV выделяю нужные цвета отсеиваю всё ненужное с помощь Кенни выделяю границы делаю апроксимиляцию(избавляюсь от всего мелкого)и с помощью связи периметра и площади нахожу наши кубики и потом заношу их в массив такое возможно сделать или можно что-нибудь лучше придумать ?
  9. Распознание предмета

    окей спс завтра всё это просмотрю будут проблемы отпишусь.спасибо=)
  10. Распознание предмета

    ну да типа того я понимаю что нужно сделать с помощью их координат но проблема в там что он из-за освещённости может определить сначала два потом один а потом если чуть повернуть то 3 квадрата
  11. Распознание предмета

    Забыл упомянуть что квадраты не не подвижны то есть их держить человек все эти данные буду снимать с веб камеры и квадраты расположены почти в плотную друг к другу
  12. при захвате выдаёт такую ошибку вот код Код C++ (QT) #include "opencv2/highgui/highgui.hpp" #include "opencv2/video/tracking.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]) { cvNamedWindow("capture"); cvNamedWindow("image"); CvCapture *capture = cvCreateCameraCapture(CV_CAP_ANY); assert(capture!=0); IplImage* frame = 0; while(true){ frame = cvQueryFrame( capture ); cvShowImage("capture", frame); char c = cvWaitKey(1); if (c == 27) { break; } } cvReleaseCapture( &capture ); cvDestroyAllWindows(); }
  13. Проблема осталась взял у друга камеру поставил дрова но не помогло таже ошибка решил снести qt и поставить занова кинеть мануал по установки opencv
  14. нет не работает скорей всего проблема в драйвере буду искать решение
  15. Дрова остались дома .Я как раз оттуда и качал но не помогает
  16. кстати я тоже так думал у меня встроенная камера дрова сам виндос ставит а вот как дрова acer поставить незнаю
  17. Сделал как вы сказали вот что выдаёт
  18. всмысле всё впорядке а что может быть не так ?у меня камера встроенная в скайпе работает
  19. После отключения BUILD_SHARED_LIBS вылетает такая ошибка что делать?
  20. наткунулся на статью где говорится что OpenCV DLL OpenCV без поддержки Qt DLL не может быть запущена под Qt. Проверьте BUILD_SHARED_LIBS Проверьте BUILD_WITH_DEBUG_INFO
  21. Допустим я собрал статическую библиотеку а как её добавить в проект?раньше я делал INCLUDEPATH += C:/dev/opencv/mingw32/install/include LIBS += C:/dev/opencv/mingw32/install/lib/*.a а потом добавлял #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream>
  22. ну а как бы ты на висио делал ?
  23. а как путь прописать ?
  24. нашёл да она есть лежит в OpenCV2.2\3rdparty\include
  25. а где она должна лежать ?
×