在安卓应用中运行Python图像处理脚本
我正在使用一个Python脚本来检测圆形,这个脚本用到了Hough变换,并且导入了“opencv2”和“math”这两个库。我可以在安卓应用中运行这个脚本吗?怎么做呢?以下是我想在安卓应用中运行的代码。
def resizeImage(img):
dst=cv2.resize(img,None,fx=1,fy=1,interpolation=cv2.INTER_LINEAR)
return dst
img=cv2.imread('20140318_174800.jpg')
grey=cv2.imread('20140318_174800.jpg',0)
ret,thresh = cv2.threshold(grey,50,255,cv2.THRESH_BINARY)
circles = cv2.HoughCircles(thresh,cv2.cv.CV_HOUGH_GRADIENT,1,75,param1=50,param2=13,minRadius=0,maxRadius=400)
for i in circles[0,:]:
#draw the outer circle
cv2.circle(img,(i[0],i[1]),i[2],(0,255,0),2)
#draw the centre of the circle
cv2.circle(img,(i[0],i[1]),2,(0,0,255),3)
##Determine co-ordinates for centre of circle
x1 = circles[0][0][0]
y1 = circles[0][0][1]
#x2 = circles[0][1][0]
#y2 = circles[0][1][1]
##Angle betwen two circles
#theta = math.degrees(math.atan((y2-y1)/(x2-x1)))
##print information
print "x1 = ",x1
print "y1 = ",y1
#print "x2 = ",x2
#print "y2 = ",y2
#print theta
print circles
##Resize image
img = resizeImage(img)
thresh = resizeImage(thresh)
##Show Images
cv2.imshow("thresh",thresh)
cv2.imshow("img",img)
cv2.waitKey(0)
1 个回答
0
现在,你是做不到的。
你需要先为安卓重新编译cv2模块,方法类似于python4android的做法(把系统调用重定向到Java的远程方法调用),这是一项很复杂的工作。