程式練習2 blob分析的顏色識別例程

2021-08-21 07:46:23 字數 1354 閱讀 8536

**********************************blon分析方法進行顏色識別********

dev_close_window ()

read_image (image, 'cable2')

get_image_size (image, width, height)

dev_open_window (0, 0, width, height, 'black', windowhandle)

dev_display (image)

**顏色空間變換--rgbtohsv

decompose3 (image, image1, image2, image3)

trans_from_rgb (image1, image2, image3, hue, saturation, indesity, 'hsv')

**利用飽和度分量影象來進行二值化處理

threshold (saturation, region, 68, 152)

**利用hsv的色排程分量中不同顏色對應的灰度值範圍

reduce_domain (hue, region, imagereduced)

**青色的色排程分量對應的灰度值範圍100--125

threshold (imagereduced, regions, 100, 125)

**形狀選擇:選擇最大的region

connection (regions, connectedregions)

select_shape_std (connectedregions, selectedregions, 'max_area', 0)

**形態學處理優化影象形狀

closing_circle (selectedregions, regions, 2)

**獲得並顯示青色的排線

reduce_domain (image, regions, imagereduced1)

dev_display (imagereduced)

dev_display (imagereduced1)

執行結果如下所示:

這個程式主要是利用blob分析來分割物體,然後利用hsv顏色空間的hue分量(色排程)中,不同的顏色對應不同的灰度值。程式中黃色分量的灰度值範圍是20-45,我們利用20-45來識別影象中的黃色物體。青色的灰度值範圍是100-125。

和之前做的車牌識別一樣,blob分析有乙個特點就是對光照和背景的要求比較高。一旦環境發生變化,就會影響到影象處理的結果。所以,基於機器學習的影象處理是必然的趨勢。

程式練習題 2

考慮如下的序列生成演算法 從整數 n 開始,如果 n 是偶數,把它除以 2 如果 n 是奇數,把它乘 3 加1。用新得到的值重複上述步驟,直到 n 1 時停止。例如,n 22 時該演算法生成的序列是 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1。人們猜想 沒有...

matlab練習程式(Bug2演算法)

bug演算法是一種避障演算法,思路就是想象從起始點有乙隻小蟲,不停延直線靠近目標,如果遇見障礙物,則沿著障礙物邊界移動,繞過障礙物後繼續沿直線靠近目標。從上面說的思想就可以認為該演算法由兩種路徑組成,一種直線路徑,一種障礙物環繞路徑。直線路徑可以認為是起點到終點的線段,不過該線段要去除掉和障礙物相交...

一些程式段分析 2

程式段3 以下 編譯時會產生錯誤的是哪條語句?include using namespace std struct foo foo int void fun int main void 分析 呼叫無參建構函式即編譯器預設生成的建構函式時,直接定義乙個物件,不能在後面加乙個括號,否則就為函式的定義,會...