<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3810294</guid>
        <pubDate>Fri, 13 Sep 2019 10:46:09 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3810294</link>
        <description><![CDATA[=SAPSAN=: Короче, отвечаю сам себе и всем остальным....<br>
<br>
Медиану при входной матрице в формате HSV можно было посчитать так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">double medianMat(cv::Mat Input)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::vector&#60;cv::Mat&#62; channels;</div><div class="code_line">&nbsp;&nbsp; &nbsp;cv::split(Input, channels);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Input = channels[0];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Input = Input.reshape(0, 1);// spread Input Mat to single row</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::vector&#60;double&#62; vecFromMat;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Input.copyTo(vecFromMat); // Copy Input Mat to vector vecFromMat</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::nth_element(vecFromMat.begin(), vecFromMat.begin() + vecFromMat.size() / 2, vecFromMat.end());</div><div class="code_line">&nbsp;&nbsp; &nbsp;return vecFromMat[vecFromMat.size() / 2];</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
НО&#33;..<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cv::Canny(output, output, lower, upper, 3);</div><div class="code_line">// или</div><div class="code_line">cv::Canny(output, output, lower, upper);</div></ol></div></div></div></div><br>
не хочет работать СОВСЕМ... Плюнул я на это дело и решил пойти другим путем. Конвертацию в полутона оставил как есть, а на выходе из auto_canny сделал преобразование в черно-белое<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">//.........</div><div class="code_line">&nbsp;&nbsp; &nbsp;auto_canny(frame, edges, 0.5);</div><div class="code_line">&nbsp;&nbsp; &nbsp;edges = edges &#62; 128;</div><div class="code_line">//.........</div></ol></div></div></div></div><br>
Мне, собственно, для решения поставленной задачи этого хватит. Всем спасибо за помощь.<br>
<br>
Если будут у кого мысли или предложения - пишите.]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809958</guid>
        <pubDate>Tue, 10 Sep 2019 15:19:08 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809958</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809951'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>=SAPSAN= &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T14:29:05+00:00">10.09.19, 14:29</time></span><div class='quote '>Есть идеи как получить желаемое?</div></div><br>
Тут идей нет - с либой совсем незнаком.]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809951</guid>
        <pubDate>Tue, 10 Sep 2019 14:29:05 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809951</link>
        <description><![CDATA[=SAPSAN=: Так всегда. Одно решаем - тут же другое появляется. Есть идеи как получить желаемое? Мне от openCV только это и нужно.... Остальное с питона переводится на раз...]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809949</guid>
        <pubDate>Tue, 10 Sep 2019 14:23:31 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809949</link>
        <description><![CDATA[JoeUser: Это уже другая песня  :)]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809946</guid>
        <pubDate>Tue, 10 Sep 2019 14:11:51 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809946</link>
        <description><![CDATA[=SAPSAN=: Смотрите, где косяк обнаружился<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cv::cvtColor(image, output, cv::COLOR_BGR2GRAY); // это на гитхабе и все работает</div></ol></div></div></div></div><br>
<br>
а мне надо<br>
<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cv::cvtColor(image, output, cv::COLOR_BGR2HSV); // это не работает</div></ol></div></div></div></div>]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809941</guid>
        <pubDate>Tue, 10 Sep 2019 13:37:08 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809941</link>
        <description><![CDATA[JoeUser: <strong class='tag-b'>=SAPSAN=</strong>, ну не зря я про формат изображения вроде спрашивал. Похоже на то.<br>
Вот что народ про твою ошибку пишет:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>The channels of your two images do not match. So you are trying to copy a bgr image to a grayscale image or something like that. Check the types of your images.</div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-09-10T13:42:56+00:00">10.09.19, 13:42</time></span></span><br>
Я бы посоветовал сперва добиться результата без ошибки на каком-то простом изображении.<br>
Ну а потом бы исследовал что там камера захвата выдает. Ну и корректировал бы по ходу.]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809940</guid>
        <pubDate>Tue, 10 Sep 2019 13:35:49 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809940</link>
        <description><![CDATA[=SAPSAN=: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809938'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T13:27:44+00:00">10.09.19, 13:27</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809929'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Wound &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T12:53:12+00:00">10.09.19, 12:53</time></span><div class='quote '>Перехвати его с помощью catch(cv::Exception&amp; error) что оно там пишет то хоть? </div></div><br>
Во-во ... из доки как раз:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">try</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;... // call OpenCV</div><div class="code_line">}</div><div class="code_line">catch (const cv::Exception&amp; e)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;const char* err_msg = e.what();</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; &quot;exception caught: &quot; &#60;&#60; err_msg &#60;&#60; std::endl;</div><div class="code_line">}</div></ol></div></div></div></div></div></div><br>
еще раз - 0x000001bae45fa070 &quot;OpenCV(4.1.1) C:&#092;&#092;build&#092;&#092;master_winpack-build-win64-vc14&#092;&#092;opencv&#092;&#092;modules&#092;&#092;core&#092;&#092;src&#092;&#092;copy.cpp:254: error: (-215:Assertion failed) channels() == CV_MAT_CN(dtype) in function &#39;cv::Mat::copyTo&#39;]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809938</guid>
        <pubDate>Tue, 10 Sep 2019 13:27:44 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809938</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809929'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Wound &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T12:53:12+00:00">10.09.19, 12:53</time></span><div class='quote '>Перехвати его с помощью catch(cv::Exception&amp; error) что оно там пишет то хоть? </div></div><br>
Во-во ... из доки как раз:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">try</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;... // call OpenCV</div><div class="code_line">}</div><div class="code_line">catch (const cv::Exception&amp; e)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;const char* err_msg = e.what();</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; &quot;exception caught: &quot; &#60;&#60; err_msg &#60;&#60; std::endl;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809937</guid>
        <pubDate>Tue, 10 Sep 2019 13:22:44 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809937</link>
        <description><![CDATA[=SAPSAN=: Пишет msg = &quot;OpenCV(4.1.1) C:&#092;&#092;build&#092;&#092;master_winpack-build-win64-vc14&#092;&#092;opencv&#092;&#092;modules&#092;&#092;core&#092;&#092;src&#092;&#092;copy.cpp:254: error: (-215:Assertion failed) channels() == CV_MAT_CN(dtype) in function &#39;cv::Mat::copyTo&#39;&#092;n&quot;<br>Как-будто все как я и говорил... Или не?]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809936</guid>
        <pubDate>Tue, 10 Sep 2019 13:19:16 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809936</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809929'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Wound &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T12:53:12+00:00">10.09.19, 12:53</time></span><div class='quote '>Так а что функция принимает, куда ты свой вектор передаешь? Может она ждет массив с выделенной памятью? Ты туда передаешь по сути пустой вектор, с 0 размером.</div></div><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>void cv::Mat::copyTo(OutputArray 	m) const</strong><br>
<br>
Copies the matrix to another one.<br>
<br>
The method copies the matrix data to another matrix. Before copying the data, the method invokes :<br>
m.create(this-&gt;size(), this-&gt;type());<br>
<br>
so that the destination matrix is reallocated if needed. While m.copyTo(m); works flawlessly, the function does not handle the case of a partial overlap between the source and the destination matrices.<br>
<br>
When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data.<br>
<br>
Parameters<br>
    m	Destination matrix. If it does not have a proper size or type before the operation, it is reallocated. </div></div>]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809935</guid>
        <pubDate>Tue, 10 Sep 2019 13:05:43 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809935</link>
        <description><![CDATA[ter_nk_: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809933'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>=SAPSAN= &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T12:58:40+00:00">10.09.19, 12:58</time></span><div class='quote '>Смотрите, метод Mat::copyTo() ждет матрицу на вход, а автор кода ему подсовывает вектор... Это как? </div></div><br>
<br>
Там они с перегрузками, а так если валится - копирует в невалидную память, она может быть не выделена скорее всего или недостаточно ее. Там же исходники библиотеки есть, попробуй по ним пройтись.]]></description>
        <author>ter_nk_</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809933</guid>
        <pubDate>Tue, 10 Sep 2019 12:58:40 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809933</link>
        <description><![CDATA[=SAPSAN=: У меня что-то в голове плохо укладывается...<br>
Смотрите, метод Mat::copyTo() ждет матрицу на вход, а автор кода ему подсовывает вектор... Это как? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-09-10T13:00:31+00:00">10.09.19, 13:00</time></span></span><br>
Код не  мой - это с гитхаба.... Опередили меня]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809929</guid>
        <pubDate>Tue, 10 Sep 2019 12:53:12 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809929</link>
        <description><![CDATA[Wound: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809924'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>=SAPSAN= &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T12:32:46+00:00">10.09.19, 12:32</time></span><div class='quote '>Валится все только на копировании в вектор для нахождения медианы</div></div><br>
Так а что функция принимает, куда ты свой вектор передаешь? Может она ждет массив с выделенной памятью? Ты туда передаешь по сути пустой вектор, с 0 размером.<br>
И текст исключения хорошо бы почитать. Перехвати его с помощью catch(cv::Exception&amp; error) что оно там пишет то хоть?]]></description>
        <author>Wound</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809924</guid>
        <pubDate>Tue, 10 Sep 2019 12:32:46 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809924</link>
        <description><![CDATA[=SAPSAN=: Изображение - обычный битмап<br>
валится на первой же итерации<br>
если не вызывать auto_canny, а сделать так<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cvtColor(frame, edges, COLOR_BGR2GRAY);</div><div class="code_line">GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);</div><div class="code_line">Canny(edges, edges, 0, 30, 3);</div></ol></div></div></div></div><br>
то все работает<br>
Валится все только на копировании в вектор для нахождения медианы]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809920</guid>
        <pubDate>Tue, 10 Sep 2019 12:03:07 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809920</link>
        <description><![CDATA[JoeUser: Я так понимаю, что вместо всех этих захватов можно скормить просто одно изображение для теста? <br>
И если &quot;да&quot;, какой формат изображения должен быть? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-09-10T12:04:26+00:00">10.09.19, 12:04</time></span></span><br>
И попутно вопрос: сразу же на первой итерации валится прога?]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809907</guid>
        <pubDate>Tue, 10 Sep 2019 11:17:09 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809907</link>
        <description><![CDATA[=SAPSAN=: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809895'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T11:00:49+00:00">10.09.19, 11:00</time></span><div class='quote '></div></div><br>
<br>
А он (код) простенький <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">int main(int, char **)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;VideoCapture cap(filevideo);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (!cap.isOpened()) &nbsp;// check if we succeeded</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;cout &#60;&#60; &quot;Cannot open the video file&quot; &#60;&#60; endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;cin.get(); //wait for any key press</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return -1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;Mat edges;</div><div class="code_line">&nbsp;&nbsp; &nbsp;namedWindow(&quot;edges&quot;, WINDOW_AUTOSIZE);</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (;;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;Mat frame;</div><div class="code_line">&nbsp;&nbsp; &nbsp;cap &#62;&#62; frame; // get a new frame from camera</div><div class="code_line">&nbsp;&nbsp; &nbsp;double timestamp = cap.get(CAP_PROP_POS_MSEC);</div><div class="code_line">&nbsp;&nbsp; &nbsp;auto_canny(frame, edges, 0.5);</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;imshow(&quot;edges&quot;, edges);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (waitKey(33) == 27) break; // выходим по ESC вне зависимости от раскладки</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Это без всего лишнего код]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809895</guid>
        <pubDate>Tue, 10 Sep 2019 11:00:49 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809895</link>
        <description><![CDATA[JoeUser: Лучше наверное привести весь код, включая то, чем инициализируется &quot;cv::Mat &amp;image&quot;.]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809885</guid>
        <pubDate>Tue, 10 Sep 2019 10:40:08 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809885</link>
        <description><![CDATA[=SAPSAN=: Исключение возникает &quot;Возникло необработанное исключение по адресу 0x00007FFC8D049129 в Edges.exe: исключение Microsoft C++: cv::Exception по адресу памяти 0x00000080423DE150.&quot;<br>Причем без разницы каким способом передача происходит - сейчас попробовал по ссылке - выскочило то,, что указал выше]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809874</guid>
        <pubDate>Tue, 10 Sep 2019 10:17:44 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809874</link>
        <description><![CDATA[Wound: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809873'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>=SAPSAN= &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T10:04:20+00:00">10.09.19, 10:04</time></span><div class='quote '>Input.copyTo(vecFromMat); // Copy Input Mat to vector vecFromMat &lt;-- НА ЭТОЙ СТРОКЕ ИСКЛЮЧЕНИЕ</div></div><br>
Какое исключение? Может быть оно ожидает не пустой вектор, а размером с оригинал? <br>
Попробуй вектору сделать resize, перед тем как передавать его в copyTo.<br>
Плюс ко всему, параметр передается по значению, будет создана копия:<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415764&view=findpost&p=3809873'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>=SAPSAN= &#064; <time class="tag-quote__quoted-time" datetime="2019-09-10T10:04:20+00:00">10.09.19, 10:04</time></span><div class='quote '>double medianMat(cv::Mat Input)</div></div><br>
Ты точно так хотел сделать? Может быть лучше по ссылке передать?<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">double medianMat(cv::Mat&amp; Input)</div></ol></div></div></div></div><br>
?]]></description>
        <author>Wound</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809873</guid>
        <pubDate>Tue, 10 Sep 2019 10:04:20 +0000</pubDate>
        <title>Медиана, OpenCV, массивы-векторы и пр....</title>
        <link>https://forum.sources.ru/index.php?showtopic=415764&amp;view=findpost&amp;p=3809873</link>
        <description><![CDATA[=SAPSAN=: Всем доброго времени суток&#33;<br>
<br>
Заставили переводить код с Питона (в нем задействована OpenCV с auto_canny). Нашел <a class='tag-url' href='https://github.com/eokeeffe/AutoCanny' target='_blank'>на GitHub</a> реализацию нужной функции на C++. Что-то не понимаю я почему у меня необработанное исключение выскакивает при копировании входного Mat в вектор при определении медианы. Или туплю конкретно, или подскажите где ошибся.... Очень давно на VC++ не писал... Может, поменялось что?<br>
<br>
VS 2015 комьюнити<br>
Измененный немного код ниже<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">double medianMat(cv::Mat Input)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;Input = Input.reshape(0, 1);// spread Input Mat to single row</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::vector&#60;double&#62; vecFromMat;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Input.copyTo(vecFromMat); // Copy Input Mat to vector vecFromMat &#60;-- НА ЭТОЙ СТРОКЕ ИСКЛЮЧЕНИЕ</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::nth_element(vecFromMat.begin(), vecFromMat.begin() + vecFromMat.size() / 2, vecFromMat.end());</div><div class="code_line">&nbsp;&nbsp; &nbsp;return vecFromMat[vecFromMat.size() / 2];</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">cv::Mat auto_canny(cv::Mat &amp;image, cv::Mat &amp;output, float sigma = 0.33)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int low_H = 30, low_S = 150, low_V = 50;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int high_H = 255, high_S = 255, high_V = 180;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//convert to grey colour space</div><div class="code_line">&nbsp;&nbsp; &nbsp;cv::cvtColor(image, output, cv::COLOR_BGR2HSV);</div><div class="code_line">&nbsp;&nbsp; &nbsp;cv::Mat msk, res;</div><div class="code_line">// &nbsp;cv::Mat l = </div><div class="code_line">&nbsp;&nbsp; &nbsp;inRange(output, cv::Scalar(low_H, low_S, low_V), cv::Scalar(high_H, high_S, high_V), msk);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bitwise_and(output, output, output, msk);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//apply small amount of Gaussian blurring</div><div class="code_line">&nbsp;&nbsp; &nbsp;//cv::GaussianBlur(output, output, cv::Size(3, 3), 0, 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//get the median value of the matrix</div><div class="code_line">&nbsp;&nbsp; &nbsp;double v = medianMat(output);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//generate the thresholds</div><div class="code_line">&nbsp;&nbsp; &nbsp;//int lower = (int)std::max(0.0, (1, 0 - sigma)*v); // было так</div><div class="code_line">&nbsp;&nbsp; &nbsp;//int upper = (int)std::min(255.0, (1, 0 + sigma)*v); // было так</div><div class="code_line">&nbsp;&nbsp; &nbsp;int lower = (int)std::max(0.0, 4.0*(1, 0 - sigma)*v); // определение нижней границы фильтра; коэффициент 4 подобран вручную после сравнения ярких и тёмных полос</div><div class="code_line">&nbsp;&nbsp; &nbsp;int upper = (int)std::min(255.0, 3.5*(1, 0 + sigma)*v); // определение верхней границы фильтра; коэффициент 3.5 подобран вручную после сравнения ярких и тёмных полос</div><div class="code_line">&nbsp;&nbsp; &nbsp;//apply canny operator</div><div class="code_line">&nbsp;&nbsp; &nbsp;cv::Canny(output, output, lower, upper, 3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return output;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Мелочь какая-то, ведь, скорее всего... Подскажите, ребят....]]></description>
        <author>=SAPSAN=</author>
        <category>C/C++: Прочее</category>
      </item>
	
      </channel>
      </rss>
	