最近需要做一个图像识别的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():

  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测试代码:

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

结果:

from: http://blog.csdn.net/abcjennifer/article/details/17580311

最新文章

  1. MySQL慢查询日志总结
  2. Vim杂记:markdown插件
  3. VLC编译问题
  4. 【SQLite】使用事务处理带参数的插入
  5. 解决IE无法解析json的方法
  6. textarea文本域
  7. Sublime一些设置
  8. ubuntu 第一次安装时 默认root 密码设置
  9. MySQL学习笔记(1) - cmd登陆和退出
  10. [C#基础] 泛型
  11. Volley该框架使用了大量的请求图片
  12. TODOList项目
  13. C++中Map常见用法以及按照value排序
  14. AngularJS模块
  15. jsp的验证码实现
  16. lintcode.245 子树
  17. Akka(41): Http:DBTable-rows streaming - 数据库表行交换
  18. Java中synchronized的使用实例
  19. css多类选择器
  20. QTimer在QThread环境中失效的问题

热门文章

  1. Netsharp快速入门(之4) 基础档案(之C 实体建模 计量单位、商品、往来单位)
  2. JavaScript 关于变量作用域的一道面试题
  3. RobotFramework-关键字
  4. Leetcode#166 Fraction to Recurring Decimal
  5. python抓取汇率
  6. css属性简写集合
  7. codeforces #240 div 2
  8. BZOJ2961: 共点圆
  9. 【基本算法】 KMP文本串模式串的字符串匹配算法
  10. javascript的Function 和其 Arguments