用opencv實現簡單圖形檢測,用OpenCv實現簡單圖形檢測

時間 2021-05-14 09:57:36

1樓:匿名使用者

我說下思路吧,你自己動手來

邊緣檢測 分割  把每個圖形分割出來  每個圖形是個閉包區域

對分割出來的區域 單獨做直線檢測 houghline2我記得是這個函式在opencv裡 如果找到 3根直線為三角形,沒有為圓形,以此類推。

2樓:i觀白

使用opencv的cvfindcontours函式

3樓:魔方傻

孩子,這是opencv的入門課之一啊,如果連這都不願意學,不願意自己鑽研,以後還怎麼發展?大學的時光很寶貴啊,好好珍惜啊!!!

如何利用opencv實現彩色影象邊緣檢測演算法

4樓:匿名使用者

在opencv中顯示邊緣檢測很簡單,只需呼叫乙個cvcanny函式,其使用的是canny演算法來實現對影象的邊緣檢測.

函式原型為:

void cvcanny( const cvarr* image,cvarr* edges,double threshold1,double threshold2, int aperture_size=3 );

第乙個引數為待檢測的影象,注意一點,其必須是灰度圖.

第二個引數為輸出的邊緣圖,其也是乙個灰度圖.

後三個引數與canny演算法直接相關,threshold1和threshold2 當中的小閾值用來控制邊緣連線,大的閾值用來控制強邊緣的初始分割,aperture_size運算元核心大小,可以去看看canny演算法.

從彩色圖到灰度圖需要使用到cvcvtcolor函式,其接受三個引數,第一為輸入,第二為輸出,第三個為轉換的標識,我們這邊是rgb到gray,使用的是cv_rgb2gray.

參考demo**如下:

#include

#include

#include

#include

#include

using namespace std;

int string2int(const string& str_)

void docanny(const string& strfilename_)

//彩色**轉換成灰度圖放置的**

iplimage* _piplimagecanny = cvcreateimage(cvgetsize(_piplimagein), _piplimagein->depth, 1);

cvcvtcolor(_piplimagein, _piplimagecanny, cv_rgb2gray);//cv_rgb2gray將rgb圖轉成灰度圖

//只有邊緣路徑的**

iplimage* _piplimageout = cvcreateimage(cvgetsize(_piplimagein), ipl_depth_8u, 1);

//邊緣檢測只能作用於灰度圖

if (_piplimagecanny->nchannels != 1)

//邊緣檢測操作

cvcanny(_piplimagecanny, _piplimageout, 1, 110, 3);

cvnamedwindow("src");

cvshowimage("src", _piplimagein);

cvnamedwindow("canny");

cvshowimage("canny", _piplimageout);

cvwaitkey(0);

cvdestroywindow("src");

cvdestroywindow("canny");

}int main(int argc, char* argv)

docanny(argv[1]);

return 0;}

5樓:匿名使用者

#include

#include

#include

#include

#include

int main(int argc, char** argv)}cvnamedwindow( "circles3", 1 );

cvshowimage( "circles3", gray );

printf("%d",n1);

cvnamedwindow( "circles", 1 );

cvshowimage( "circles", img );

cvwaitkey(0);

cvreleaseimage(&img);

cvreleaseimage(&gray);

}return 0;}

opencv 如何檢測特定形狀的物體

6樓:匿名使用者

你的思路可以,即將現有影象和樣本影象的特徵點進行匹配,然後判斷是否有鉤子上的特徵點匹配上了,若有,則為有鉤子的影象,若無,則為無鉤子的影象。 我覺得,你可能錯在沒有剔除錯誤的匹配點,你應該剔除掉錯誤的匹配點,再來進行分析。

急急急!!!基於opencv 的機器視覺:利用opencv實現**邊緣檢測並求兩條線間的距離。

7樓:牛牛vs驢驢

你讀取每一行的畫素值,黑色的畫素值為0,白色的為255,從左向右讀取,當前乙個畫素為0,後乙個畫素為255時,則找到邊界,繼續讀取,當找到前乙個畫素為255,後乙個畫素為0時,則找到右邊界。每一行都按著這個過程,把左右邊界的點分別儲存,有了點根據兩點確定一條直線可以得到兩條白色斜線。 最下面一行的白色左邊緣點 與右邊緣點的差值即為間距。

8樓:匿名使用者

cvcanndy檢測邊緣並二值化影象,然後cvhoughlines2可以檢測直線,在知道了直線的資料後,計算線之間的距離不是很簡單嗎,具體的**只有參見網路上的**了,比較簡單,祝順利

opencv影象識別-求思路 85

9樓:

給你講解

bai一下識別

的大致思路吧;

du第一,先來zhi說說計算機識dao別的過程,如專果只是簡單物體識別很簡屬單,大部分碩士生也是大致的如下步驟;

1)預處理,對得到的**進行預處理,將複雜的影象變成色彩塊2)色彩提取,有了色彩塊,就可以對目標的顏色進行提取,進而消除大部分背景;

3)降噪,對於提取的前景需要去除一些雜訊點、塊,以方便之後的識別;

4)建模,對你的前景進行建模,建模的方式有很多中;

5)匹配,用你的目標和你提取的模型進行匹配;

10樓:阿芋王

看到你這個**

bai 首先我感覺你這du個偏綠zhi的問題 是因為你錯誤的把攝dao像頭傳回來的

內ycbcr色彩空間的影象用容rgb來顯示了,或者就是你rgb弄成了bgr顯示,先調整一下影象讀取顯示的問題 呵呵

另外 就你這個貼出來的**,肯定是受到攝像頭的限制,有扭曲的問題,找找攝像頭標定的**,先恢復到正常的影象,然後再去想怎麼做,處理的素材不好,後面什麼演算法都是白搭

至於識別的問題,不知道你想識別什麼,常見的機械人識別裡面識別道路的話最好先弄一點先驗知識,呵呵算是一點點經驗之談,如果我沒猜錯,建議你查查美國國防部的darpa challenge(好像是這麼寫) 都是機器視覺導航的 可以開開眼界

11樓:匿名使用者

識別本來是乙個很難的問題,不是一兩句話能說清楚的,你看看商業上的應用,也就那樣。

你提到的偏綠問題,最好是改進硬體的方法解決

建議你看看人臉是別的一些**資料

用opencv做影象識別。檢測金屬表面的缺陷。

12樓:餘智慧型

僅僅看壓痕缺陷打光效果,可以建立兩個高斯濾波,對**用乙個濾波器在頻域進行卷積運算,然後用傅利葉反變換對濾波後的**進行處理,得出缺陷

13樓:

收集缺陷**,對這些**繼續深度學習提取出特徵資訊,再做篩選。

如何用opencv檢測這個影象中的黑點

14樓:

1.對**進行分層,從r,g,b中取最清晰的一層。

2.對1中取得的圖層取輪廓。

3.去掉最大的輪廓(外層的試管輪廓),剩下的就是黑點的輪廓了。

如果**中有較多噪點,那麼中步驟1和2之間,加入高斯模糊處理,會減少噪點的干擾。

哪位大神能把opencv2.1做簡單的幾何圖形識別發給我,感激不盡!![email protected]

15樓:可愛的八嘎牙路醬

沒有現成的程式

可以給你提供的思路

1.canny 取邊緣

2.cvfindcontour 找到3個外圍輪廓3.cvminenclosingcircle,找到3個包圍圓4.

每個輪廓上取一點,向自己的包圍圓圓心方向搜尋搜尋到幾個亮度為255的點 就是裡面包含幾個同心圓比較容易實現

16樓:匿名使用者

opencv 現成的只有houghcircle可以檢測圓形

而且不能檢同心圓

想用opencv識別影象中特定物體的個數,怎麼做到

17樓:房子a房子

基本上那就需要使用機器學習或者深度學習來實現模式識別了。通過模式識別能夠找出影象上指定物體的位置和個數。但還要看呢具體要識別的是什麼,現階段人臉的檢測做的很好。

使用機器學習需要為特定物體建立一套識別方法然後再訓練分類器。深度學習就需要有大量的正反資料來對模型進行訓練才行。

18樓:匿名使用者

ipp image 用這個基本上可以解決你的問題!可惜網上的學習資料太少,也沒找到漢化版。

opencv的影象顯示問題,opencv用imshow或cvShowImage顯示影象時只能一幅一幅的顯示嗎,就是只有關掉乙個影象才能顯示下乙個嗎

cfiledialog檔案選擇對話方塊的使用 首先構造乙個物件並提供相應的引數,建構函式原型如下 cfiledialog cfiledialog bool bopenfiledialog,lpctstr lpszdefext null,lpctstr lpszfilename null,dword ...

520 530 540 550 560 570用簡便方法

越答越離譜 520 530 540 550 560 570用簡便方法 520 570 570 520 530 520 1 2 1090 6 2 3270 擴充套件資料 簡算方法 裂項法分數裂項是指將分數算式中的項進行拆分,使拆分後的項可前後抵消,這種拆項計算稱為裂項法。常見的裂項方法是將數字分拆成兩...

3 58 67 35 8 3 7 0 358 40怎麼用簡便方法算

越答越離譜 3.58 67 35.8 3.7 0.358 40簡算 3.58 x 67 35.8 x 3.7 0.358 x 40 3.58 x 67 3.58 x 37 3.58 x 4 3.58 x 67 37 4 3.58 x 67 33 3.58 x 100 358 擴充套件資料 簡便計算方...