程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .NET + OpenCV & Python + OpenCV 配置

.NET + OpenCV & Python + OpenCV 配置

編輯:關於.NET

最近需要做一個圖像識別的GUI應用,權衡了Opencv+ 1)QT,2)Python GUI,3).NET後選擇了.NET。。。

本文給出C#+Opencv和Python+Opencv的相應參考,節省大家時間。

 

 

(一)C#.NET + Opencv

1)下載並安裝Emgu庫(for opencv on .NET env)

      Download @ http://sourceforge.net/projects/emgucv/

2)How to use opencv on C#?

     VS上配置Emgu(庫)

3)測試on C#.NET

   

 

(二)Python + Opencv

 

按照官網的Instruction一步步來,可以從source自己編譯,也可以直接用二進制文件。

這裡注意我遇到的一個錯誤,undefined cv2.SIFT():

 

[plain] view plain copy    在CODE上查看代碼片派生到我的代碼片
  1. AttributeError: 'module' object has no attribute 'SIFT'  


查資料有的地方解釋為高版本把SIFT當做non-free的module需要自己編譯才有,具體參考這個帖子。

 

但我自己編譯成功後還是沒解決問題。。。於是試著吧opencv 2.3.1換成opencv 2.4.6.0,再按官網的Instruction預編譯二進制文件方法把cv2.pyd拷到python下,成功了。。。。

PS: 喜歡在mac上折騰的看看這個帖子吧。。。Installing OpenCV 2.4.2 on Mac OSX Mountain Lion with Python support

 

最後貼個python+opencv+numpy測試代碼:

 

 

[python] view plain copy    在CODE上查看代碼片派生到我的代碼片
  1. import cv2  
  2. import numpy as np  
  3. #import pdb  
  4. #pdb.set_trace()#turn on the pdb prompt  
  5.   
  6. #test cv2 and numpy package  
  7. print cv2.__version__  
  8. a = np.arange(10)  
  9. print(a)  
  10.   
  11. #read image  
  12. img = cv2.imread('D:\privacy\picture\little girl.jpg',cv2.IMREAD_COLOR)  
  13. gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
  14. cv2.imshow('tt',img);  
  15.   
  16. #basic accessing  
  17. b,g,r = img[0,0];#blue,green,red  
  18. print b,g,r  
  19.   
  20. rows,columns,channels = img.shape  
  21. print rows,columns,channels  
  22. print img.size  
  23.   
  24. #channels split and merge  
  25. b,g,r = cv2.split(img)  
  26. img = cv2.merge([b,g,r])  
  27.   
  28. #SIFT  
  29. detector = cv2.SIFT()  
  30. keypoints = detector.detect(gray,None)  
  31. img = cv2.drawKeypoints(gray,keypoints)  
  32. #img = cv2.drawKeypoints(gray,keypoints,flags = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)  
  33. cv2.imshow('test',img);  
  34. cv2.waitKey(0)  
  35. cv2.destroyAllWindows()  



 

 

結果:

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved