halcon和opencv哪個(gè)好 用opencv將圖像中檢測(cè)到的矩形摳出來(lái),在另一個(gè)窗口顯示?
用opencv將圖像中檢測(cè)到的矩形摳出來(lái),在另一個(gè)窗口顯示?如果這是一個(gè)正方形的矩形,也就是說(shuō),沒(méi)有偏轉(zhuǎn)角,只要找到左上角的坐標(biāo)和長(zhǎng)度和寬度,然后設(shè)置一個(gè)遮罩并復(fù)制它。但是這個(gè)點(diǎn)的坐標(biāo)和長(zhǎng)寬不容易確定
用opencv將圖像中檢測(cè)到的矩形摳出來(lái),在另一個(gè)窗口顯示?
如果這是一個(gè)正方形的矩形,也就是說(shuō),沒(méi)有偏轉(zhuǎn)角,只要找到左上角的坐標(biāo)和長(zhǎng)度和寬度,然后設(shè)置一個(gè)遮罩并復(fù)制它。但是這個(gè)點(diǎn)的坐標(biāo)和長(zhǎng)寬不容易確定。對(duì)于你的圖表,我會(huì)給你一個(gè)方法。你可以試試。我以前遇到過(guò)一些項(xiàng)目,我相信它會(huì)奏效的。使用輪廓檢測(cè),然后通過(guò)線(xiàn)循環(huán)找到所有內(nèi)輪廓中最大的內(nèi)輪廓,得到最大的輪廓,然后像原始圖像一樣設(shè)置一個(gè)完整的0圖像,在完整的0圖像上繪制找到輪廓的內(nèi)填充域,并將完成的作為蒙版。最后,使用copy函數(shù)來(lái)復(fù)制mask中的一個(gè)。這個(gè)方法有點(diǎn)笨拙,但很實(shí)用。你可以試試。去年我也遇到過(guò)類(lèi)似的情況,幾個(gè)師兄一起商量。最后,實(shí)現(xiàn)了opencv程序。如果有更好的溝通方式~~希望你能幫忙。
怎么用opencv將幾幅照片放在一個(gè)窗口顯示?
我不太明白標(biāo)題的意思。它是一個(gè)顯示多張圖片的窗口嗎?您可以先創(chuàng)建一個(gè)大圖像(大小是所有小圖像的總和),然后根據(jù)要顯示的圖像的大小和位置設(shè)置ROI,并將小圖像復(fù)制到其中。最后,釋放ROI顯示大圖像
另一種方法是將opencv窗口添加到picturecontrol中,這樣就可以繼續(xù)使用opencv的setmousecallback直接對(duì)picturecontrol進(jìn)行操作。首先,將以下命名窗口(“view”,window)添加到OnInit函數(shù)uautosize)HWND HWND=(HWND)cvGetWindowHandle(“view”)HWND hParent=::GetParent(HWND)::SetParent(HWND,GetDlgItem(IDC ustatic ucv)->m uhwnd::ShowWindow(hParent,SW上面是打開(kāi)一個(gè)名為view的opencv窗口,并將其放置在IDC ustatic u的ID中在CV的picturecontrol中,控件類(lèi)型必須是矩形。當(dāng)您需要顯示圖像時(shí),就像在OpenCV中一樣。Imshow(“view”,mat)
怎么將opencv處理圖片在已定義好的MFC中顯示出來(lái)?
我想問(wèn),你在程序中找到感興趣的區(qū)域了嗎?如果你找到了,很容易直接處理。圖像是一個(gè)矩陣,您可以定位具有行和列值的像素。如果找不到區(qū)域的位置,只能利用區(qū)域特征找到區(qū)域,然后進(jìn)行處理