簡體   English   中英

如何圈出/突出顯示/矩形化圖像的某些區域?

[英]How to circle/highlight/rectangle certain regions of an image?

我有一個需要在WPF C#程序中圈出的帶有各個區域的灰度圖像。 這樣的圖像的示例如下:

在此處輸入圖片說明

我要圈出的區域是白色的,以這種方式:

在此處輸入圖片說明

到目前為止,我要做的是創建一個字節數組,該數組由每個像素的強度組成(0為黑白,4000為以上)。然后,我將每個字節通過閾值測試以查看其像素是否是否具有該區域的一部分(例如,如果字節的長度超過3500,則將其視為該區域的一部分,否則就沒有。)

在這之后我該做什么。 到目前為止,我的想法之一是找到行中某個區域的第一個像素,然后找到該區域底部(即左上角和右下角)的行區域的最后一個像素。兩個像素之間的距離,並使用該距離來獲取中心點(從中可以獲取繪制圓所需的坐標。)這種方法的問題是噪聲會導致很多圓出現在圖像上或誤會的圈子。 我想我可以使用閾值來消除小圓圈。

這些圖像實際上是視頻的幀(信息以字節數組的形式獲取,然后寫入到WriteableBitmap中),因此我不知道對數據進行過多的操作是否會滯后於素材。 我也是一個使用C#,字節和CS的新手,但是這個項目是我在寒假期間學習的程序。 任何答案或資源將不勝感激,尤其是在偽代碼或C#中。

從你所說的對我來說,這聽起來像是計算機視覺的問題。 我曾經開發過一些基於C#的CV問題應用程序。 基本思想是使用GDI +將Bitmap.Lockbits()對象編組為Byte[]並進行操作,或者簡單地使用Bitmap.SetPixel() Bitmap.GetPixel() ,但是它們的速度慢得多。

一個很好的選擇是使用EmguCV .NET 2.0及更高版本的OpenCV包裝器。 從而使編寫C#來解決CV問題變得更加輕松。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM