0
我試圖比較兩個位圖中矩形的相等性。我正在使用AForge庫。一個是模板,另一個是表單。我試過這個,但對我來說似乎很粗糙,因爲它有太多的迭代,這使得程序非常慢。它可以工作,但問題是程序因迭代過多而掛起。請問我錯過了什麼?我在正確的軌道上或什麼?請幫助和原諒我的原始代碼如下。 位圖位圖=新位圖(pictureBox1.Image); 位圖bitmap2 =新位圖(pictureBox2.Image);比較模板和表單c的相等性#
// create an instance of blob counter algorithm
BlobCounter blobCounter = new BlobCounter();
blobCounter.MinWidth = 5;
blobCounter.MinHeight = 5;
blobCounter.FilterBlobs = true;
blobCounter.ObjectsOrder = ObjectsOrder.Size;
blobCounter.ProcessImage(bitmap);
BlobCounter blobCounter2 = new BlobCounter();
blobCounter2.MinWidth = 5;
blobCounter2.MinHeight = 5;
blobCounter2.FilterBlobs = true;
blobCounter2.ObjectsOrder = ObjectsOrder.Size;
blobCounter2.ProcessImage(bitmap2);
Rectangle[] rects = blobCounter.GetObjectsRectangles();
Rectangle[] rects2 = blobCounter2.GetObjectsRectangles();
foreach (Rectangle recs in rects)
foreach (Rectangle recs2 in rects2)
if (rects.Length > 0)
{
if (rects2.Length > 0)
{
for (int x = 0; x < recs.Width & x < recs.Height; x++)
{
// for (int x2 = 0; x2 < recs2.Width; x2++)
for (int y = 0; y < recs2.Width & y < recs2.Height; y++)
{
// for (int y2 = 0; y2 < recs2.Height; y2++)
if (recs.Equals(recs2))
{
this.Refresh();
//listBox1.Items.Add("TRUE");
Console.WriteLine("TRUE");
}
else
{
//listBox1.Items.Add("FALSE");
Console.WriteLine("FALSE");
}.....