Wikipedia: OpenCV (Open Computer Vision Library) - библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым исходным кодом.
Пример обнаружения объектов на изображении:
(выполнено эксклюзивно для seocod.ru)
Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import sys
scf = 1.30
scfact = 1.00
color = (0,0,255)
strokeWeight = 3
cascade = cv2.CascadeClassifier('haarcascade_breast.xml')
cv2.namedWindow('Censored',cv2.WINDOW_NORMAL)
if len(sys.argv) != 2:
print "No input image given. Correct Usage : python CensorBreast.py <filename> \n"
raise SystemExit(1)
filename = sys.argv[1]
def nothing(*argv):
pass
def trackbar():
global scfact
r = cv2.getTrackbarPos('BreastDet','Censored')
scfact = 1.07+0.01*r
return scfact
def update():
img = cv2.imread(filename)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
rects = cascade.detectMultiScale(gray, scfact, 2)
for (x,y,w,h) in rects:
cv2.rectangle(img, (x,y), (x+w,y+h), color, -1)
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), strokeWeight)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'ScaleFactor:'+str(scfact),(10,30), font, 1,(255,0,0),2,cv2.LINE_AA)
cv2.imshow('Censored',img)
cv2.createTrackbar('BreastDet','Censored',0,50,nothing)
while (1):
k = cv2.waitKey(25) & 0xFF
if k == 27:
break
trackbar()
if scf == scfact:
pass
else:
update()
scf = scfact
cv2.destroyAllWindows()