На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Медиана, OpenCV, массивы-векторы и пр.... , Споткнулся на ровном месте...
    Смотрите, где косяк обнаружился

    ExpandedWrap disabled
      cv::cvtColor(image, output, cv::COLOR_BGR2GRAY); // это на гитхабе и все работает


    а мне надо


    ExpandedWrap disabled
      cv::cvtColor(image, output, cv::COLOR_BGR2HSV); // это не работает
      Это уже другая песня :)
        Так всегда. Одно решаем - тут же другое появляется. Есть идеи как получить желаемое? Мне от openCV только это и нужно.... Остальное с питона переводится на раз...
        Сообщение отредактировано: =SAPSAN= -
          Цитата =SAPSAN= @
          Есть идеи как получить желаемое?

          Тут идей нет - с либой совсем незнаком.
            Короче, отвечаю сам себе и всем остальным....

            Медиану при входной матрице в формате HSV можно было посчитать так:
            ExpandedWrap disabled
              double medianMat(cv::Mat Input)
              {
                  std::vector<cv::Mat> channels;
                  cv::split(Input, channels);
                  Input = channels[0];
                  Input = Input.reshape(0, 1);// spread Input Mat to single row
                  std::vector<double> vecFromMat;
                  Input.copyTo(vecFromMat); // Copy Input Mat to vector vecFromMat
                  std::nth_element(vecFromMat.begin(), vecFromMat.begin() + vecFromMat.size() / 2, vecFromMat.end());
                  return vecFromMat[vecFromMat.size() / 2];
              }

            НО!..
            ExpandedWrap disabled
              cv::Canny(output, output, lower, upper, 3);
              // или
              cv::Canny(output, output, lower, upper);

            не хочет работать СОВСЕМ... Плюнул я на это дело и решил пойти другим путем. Конвертацию в полутона оставил как есть, а на выходе из auto_canny сделал преобразование в черно-белое
            ExpandedWrap disabled
              //.........
                  auto_canny(frame, edges, 0.5);
                  edges = edges > 128;
              //.........

            Мне, собственно, для решения поставленной задачи этого хватит. Всем спасибо за помощь.

            Если будут у кого мысли или предложения - пишите.
            Сообщение отредактировано: =SAPSAN= -
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0239 ]   [ 16 queries used ]   [ Generated: 29.03.24, 13:45 GMT ]