.NET + OpenCV & Python + OpenCV
程序员文章站
2022-06-22 07:58:15
最近需要做一个图像识别的gui应用,权衡了opencv+ 1)qt,2)python gui,3).net后选择了.net。。。本文给出c#+opencv和python+opencv的相应参考,节省...
最近需要做一个图像识别的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 @ https://sourceforge.net/projects/emgucv/
2)how to use opencv on c#?
vs上配置emgu(库)
3)测试on c#.net
(二)python + opencv
按照官网的instruction一步步来,可以从source自己编译,也可以直接用二进制文件。
这里注意我遇到的一个错误,undefined cv2.sift():
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测试代码:
import cv2 import numpy as np #import pdb #pdb.set_trace()#turn on the pdb prompt #test cv2 and numpy package print cv2.__version__ a = np.arange(10) print(a) #read image img = cv2.imread('d:\privacy\picture\little girl.jpg',cv2.imread_color) gray = cv2.cvtcolor(img,cv2.color_bgr2gray) cv2.imshow('tt',img); #basic accessing b,g,r = img[0,0];#blue,green,red print b,g,r rows,columns,channels = img.shape print rows,columns,channels print img.size #channels split and merge b,g,r = cv2.split(img) img = cv2.merge([b,g,r]) #sift detector = cv2.sift() keypoints = detector.detect(gray,none) img = cv2.drawkeypoints(gray,keypoints) #img = cv2.drawkeypoints(gray,keypoints,flags = cv2.draw_matches_flags_draw_rich_keypoints) cv2.imshow('test',img); cv2.waitkey(0) cv2.destroyallwindows()
关于computer vision更多的学习资料将继续更新,敬请关注本博客和新浪微博rachel____zhang。
推荐阅读
-
opencv python统计及绘制直方图的方法
-
详解opencv Python特征检测及K-最近邻匹配
-
【OpenCV】【python】车道线定位及拟合(np.ployfit,cv2.fillPoly)
-
python opencv 实现对图像边缘扩充
-
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
-
基于Python+OpenCV的人脸口罩识别检测
-
python+opencv实现车道线检测
-
python opencv如何实现图片绘制
-
python通过opencv实现图片裁剪原理解析
-
OpenCV-Python 绘制矩形,绘制文本,获取文本大小【rectangle(),getTextSize(),putText()】