<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[OpenCV &#x27;std::logic_error&#x27;]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe die OpenCV Bibliothek installiert und in meinem Make file auch korrekt gelinked. Nun wollte ich dieses Tutorial im Netz nacharbeiten:</p>
<p><a href="http://docs.opencv.org/2.4/doc/tutorials/introduction/load_save_image/load_save_image.html" rel="nofollow">http://docs.opencv.org/2.4/doc/tutorials/introduction/load_save_image/load_save_image.html</a> Hier der Code:</p>
<pre><code>#include &lt;iostream&gt;

#include &lt;cv.h&gt; // OpenCV base class
#include &lt;highgui.h&gt; // for visualizing and video capturing
#include &lt;opencv2/imgproc/imgproc.hpp&gt;

using namespace std;
using namespace cv;

int main(int argc, char ** argv){

//___________________________________________________________________

char* imageName = argv[1];

 Mat image;
 image = imread( imageName, 1 );

 if( argc != 2 || !image.data )
 {
   cout &lt;&lt; &quot; No image data \n &quot;;
   return -1;
 }

 Mat gray_image;
 cvtColor( image, gray_image, CV_BGR2GRAY );

 imwrite( &quot;./Gray_Image.jpg&quot;, gray_image );

 namedWindow( imageName, CV_WINDOW_AUTOSIZE );
 namedWindow( &quot;Gray image&quot;, CV_WINDOW_AUTOSIZE );

 imshow( imageName, image );
 imshow( &quot;Gray image&quot;, gray_image );

 waitKey(0);

return 0;
}
</code></pre>
<p>Ich habe das Tutorial mehrfach gelesen und vom Konzept verstehe ich was passiert. Beim compilieren erhalte ich zudem keine Fehlermeldung.</p>
<p>Beim Ausführen des Programms kommt dann aber folgender Fehler:</p>
<pre><code>terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Abgebrochen
</code></pre>
<p>Meine Fragen dazu sind:</p>
<p>1.) Wie ist dieser Fehler zu verstehen? Ich kenne diese Fehlermeldung noch nicht. Google bringt mich auf alle möglichen Seiten aber ich konnte die Frage nicht klären.</p>
<p>2.) Was ist falsch an dem Code?</p>
<p>Danke euch für Hilfe und Grüße</p>
<p>P.S.<br />
Ich bin mir relativ sich das es nicht am compilieren liegt, aber falls doch hier mal mein Make file. Ich compiliere es dann nur mit dem Befehl make (und ich nenne das Programm liebevoll ObserverMain <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ):</p>
<pre><code>.PHONY: all clean

GXX := g++ 
GXXFLAGS := -c -g -Wall -std=c++14 `pkg-config --cflags opencv`
LDFLAGS := -g  
LIBS = `pkg-config --libs opencv`
objs := $(patsubst %.cpp,%.o,$(wildcard *.cpp))
deps := $(objs:.o=.d)

all: ObserverMain

-include $(deps)

ObserverMain: $(objs) 
	$(GXX) $(LDFLAGS) $(LIBS) -o $@ $^

%.d: %.cpp
	$(GXX) -MM -MT &quot;$@ $(patsubst %.d,%.o,$@)&quot; -MF $@ $&lt; 

%.o: %.cpp
	$(GXX) $(GXXFLAGS) $&lt;

clean:
	rm -f $(objs) $(deps)
	rm -f ObserverMain
	clear screen &amp;&amp; ls -l -a
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/339421/opencv-std-logic_error</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 04:14:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339421.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Aug 2016 14:16:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OpenCV &#x27;std::logic_error&#x27; on Mon, 29 Aug 2016 14:16:32 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe die OpenCV Bibliothek installiert und in meinem Make file auch korrekt gelinked. Nun wollte ich dieses Tutorial im Netz nacharbeiten:</p>
<p><a href="http://docs.opencv.org/2.4/doc/tutorials/introduction/load_save_image/load_save_image.html" rel="nofollow">http://docs.opencv.org/2.4/doc/tutorials/introduction/load_save_image/load_save_image.html</a> Hier der Code:</p>
<pre><code>#include &lt;iostream&gt;

#include &lt;cv.h&gt; // OpenCV base class
#include &lt;highgui.h&gt; // for visualizing and video capturing
#include &lt;opencv2/imgproc/imgproc.hpp&gt;

using namespace std;
using namespace cv;

int main(int argc, char ** argv){

//___________________________________________________________________

char* imageName = argv[1];

 Mat image;
 image = imread( imageName, 1 );

 if( argc != 2 || !image.data )
 {
   cout &lt;&lt; &quot; No image data \n &quot;;
   return -1;
 }

 Mat gray_image;
 cvtColor( image, gray_image, CV_BGR2GRAY );

 imwrite( &quot;./Gray_Image.jpg&quot;, gray_image );

 namedWindow( imageName, CV_WINDOW_AUTOSIZE );
 namedWindow( &quot;Gray image&quot;, CV_WINDOW_AUTOSIZE );

 imshow( imageName, image );
 imshow( &quot;Gray image&quot;, gray_image );

 waitKey(0);

return 0;
}
</code></pre>
<p>Ich habe das Tutorial mehrfach gelesen und vom Konzept verstehe ich was passiert. Beim compilieren erhalte ich zudem keine Fehlermeldung.</p>
<p>Beim Ausführen des Programms kommt dann aber folgender Fehler:</p>
<pre><code>terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Abgebrochen
</code></pre>
<p>Meine Fragen dazu sind:</p>
<p>1.) Wie ist dieser Fehler zu verstehen? Ich kenne diese Fehlermeldung noch nicht. Google bringt mich auf alle möglichen Seiten aber ich konnte die Frage nicht klären.</p>
<p>2.) Was ist falsch an dem Code?</p>
<p>Danke euch für Hilfe und Grüße</p>
<p>P.S.<br />
Ich bin mir relativ sich das es nicht am compilieren liegt, aber falls doch hier mal mein Make file. Ich compiliere es dann nur mit dem Befehl make (und ich nenne das Programm liebevoll ObserverMain <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ):</p>
<pre><code>.PHONY: all clean

GXX := g++ 
GXXFLAGS := -c -g -Wall -std=c++14 `pkg-config --cflags opencv`
LDFLAGS := -g  
LIBS = `pkg-config --libs opencv`
objs := $(patsubst %.cpp,%.o,$(wildcard *.cpp))
deps := $(objs:.o=.d)

all: ObserverMain

-include $(deps)

ObserverMain: $(objs) 
	$(GXX) $(LDFLAGS) $(LIBS) -o $@ $^

%.d: %.cpp
	$(GXX) -MM -MT &quot;$@ $(patsubst %.d,%.o,$@)&quot; -MF $@ $&lt; 

%.o: %.cpp
	$(GXX) $(GXXFLAGS) $&lt;

clean:
	rm -f $(objs) $(deps)
	rm -f ObserverMain
	clear screen &amp;&amp; ls -l -a
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2506954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506954</guid><dc:creator><![CDATA[cpp_Jungspund]]></dc:creator><pubDate>Mon, 29 Aug 2016 14:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to OpenCV &#x27;std::logic_error&#x27; on Mon, 29 Aug 2016 14:22:56 GMT]]></title><description><![CDATA[<p>Vielleicht solltest du erst testen, ob du genug Aufrufargumente hast und sie dann verwenden. Andersrum ist es irgendwie blöd ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506956</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 29 Aug 2016 14:22:56 GMT</pubDate></item></channel></rss>