<?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[Bild im Bild - Positions finden]]></title><description><![CDATA[<p>Hallo,<br />
ich mache mir gerade Gedanken darüber, wie ich ein Bild in einem anderen Bild finden kann. Ich habe also die beiden Bilder in IPicture Variablen geladen und auf zwei CDC kopiert, um nun die eizelnen Farbwerte der Pixel vergleichen zu können.</p>
<p>Theoretisch lässt sich das Problem natürlich dadurch lösen, dass ich über mehrere geschachtelte Schleifen, alle Koordinaten durchlaufe und die Farbwerte vergleiche, allerdings wird das mega zeitintensiv.</p>
<p>Geht es irgendwie schneller?<br />
Noch dazu: Die Bild sind deutlich größer, als die Bildschirmauflösung. Ich würde also am liebsten auf direkt mit den IPicture's arbeiten und mir den Umweg über die CDCs sparen.</p>
<p>Grüße,<br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165298/bild-im-bild-positions-finden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 13:00:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165298.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Nov 2006 13:30:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bild im Bild - Positions finden on Sat, 18 Nov 2006 13:30:51 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich mache mir gerade Gedanken darüber, wie ich ein Bild in einem anderen Bild finden kann. Ich habe also die beiden Bilder in IPicture Variablen geladen und auf zwei CDC kopiert, um nun die eizelnen Farbwerte der Pixel vergleichen zu können.</p>
<p>Theoretisch lässt sich das Problem natürlich dadurch lösen, dass ich über mehrere geschachtelte Schleifen, alle Koordinaten durchlaufe und die Farbwerte vergleiche, allerdings wird das mega zeitintensiv.</p>
<p>Geht es irgendwie schneller?<br />
Noch dazu: Die Bild sind deutlich größer, als die Bildschirmauflösung. Ich würde also am liebsten auf direkt mit den IPicture's arbeiten und mir den Umweg über die CDCs sparen.</p>
<p>Grüße,<br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176594</guid><dc:creator><![CDATA[Hecker.Michael]]></dc:creator><pubDate>Sat, 18 Nov 2006 13:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to Bild im Bild - Positions finden on Sat, 18 Nov 2006 13:50:59 GMT]]></title><description><![CDATA[<p>Ich denke es wird sicherlich vielleicht irgendwo lösungen dafür geben, aber ich würde das ganze mit MMX vergleichen. Da kannst du schon einmal 4 Pixel auf einmal vergleichen und den ersten Treffer suchen. Aber wie so oft habe ich da nur laut Gedacht.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176602</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Sat, 18 Nov 2006 13:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to Bild im Bild - Positions finden on Sat, 18 Nov 2006 14:36:58 GMT]]></title><description><![CDATA[<p>Mh, ne so ganz optimal ist das noch nicht.<br />
Hat sowas noch nie jemand gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176628</guid><dc:creator><![CDATA[Hecker.Michael]]></dc:creator><pubDate>Sat, 18 Nov 2006 14:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Bild im Bild - Positions finden on Sat, 18 Nov 2006 16:17:37 GMT]]></title><description><![CDATA[<p>Ich hänge im Moment total fest.</p>
<p>So suche ich im Moment alle Pixel im großen Bild, die den gleichen Farbwert+-Tol. haben, wie der erste Pixel im kleinen Bild:</p>
<pre><code class="language-cpp">for(int x=0;x&lt;=100;x++){
for(int y=0;y&lt;=150;y++){

						src = dc.GetPixel(CPoint(x,y));			int r1 = GetRValue(src);int g1 = GetGValue(src);int b1 = GetBValue(src);
						vgl = vgl_dc.GetPixel(CPoint(1,1));		int r2 = GetRValue(vgl);int g2 = GetGValue(vgl);int b2 = GetBValue(vgl);

						if(	r1-tol&lt;r2 &amp;&amp; r1+tol&gt;r2 &amp;&amp;
							g1-tol&lt;g2 &amp;&amp; g1+tol&gt;g2 &amp;&amp;
							b1-tol&lt;b2 &amp;&amp; b1+tol&gt;b2		){

							dc.SetPixel(CPoint(x,y),RGB(255,0,0));
						}

					}
				}
</code></pre>
<p>Damit schränke ich zwar das Gesamtfeld ein aber es gibt immernoch einige hundert Positionen an denen das kleine Bild theoretisch starten könnte.</p>
<p>Ich denke, dass sich hier eine rekursive Lösung weiterhelfen sollte aber ich komme gerade nicht weiter.</p>
<p>Wäre für jede Hilfe dankbar!</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176686</guid><dc:creator><![CDATA[Hecker.Michael]]></dc:creator><pubDate>Sat, 18 Nov 2006 16:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Bild im Bild - Positions finden on Sun, 19 Nov 2006 01:11:49 GMT]]></title><description><![CDATA[<p>Aber deine for-Schleifen nit Get und SetPixel vielleicht? Versteh ich nicht</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176929</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Sun, 19 Nov 2006 01:11:49 GMT</pubDate></item></channel></rss>