本文整理匯總了Python中cv2.TERM_CRITERIA_EPS屬性的典型用法代碼示例。如果您正苦於以下問題:Python cv2.TERM_CRITERIA_EPS屬性的具體用法?Python cv2.TERM_CRITERIA_EPS怎麽用?Python cv2.TERM_CRITERIA_EPS使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類cv2
的用法示例。
在下文中一共展示了cv2.TERM_CRITERIA_EPS屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def __init__(self, min_area=400, min_shift2=5):
"""Constructor
This method initializes the multiple-objects tracking algorithm.
:param min_area: Minimum area for a proto-object contour to be
considered a real object
:param min_shift2: Minimum distance for a proto-object to drift
from frame to frame ot be considered a real
object
"""
self.object_roi = []
self.object_box = []
self.min_cnt_area = min_area
self.min_shift2 = min_shift2
# Setup the termination criteria, either 100 iteration or move by at
# least 1 pt
self.term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT,
100, 1)
示例2: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def __init__(self):
self.of_params = {'st_pars': dict(maxCorners=200, qualityLevel=0.2,
minDistance=7, blockSize=21),
'lk_pars': dict(winSize=(20, 20), maxLevel=2,
criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0))}
self.extrapolation = "linear"
self.warper = "affine"
self.input_data = None
self.scaler = RYScaler
self.inverse_scaler = inv_RYScaler
self.lead_steps = 12
示例3: _detect_team_color
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def _detect_team_color(self, pixels):
criteria = \
(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
pixels = np.array(pixels.reshape((-1, 3)), dtype=np.float32)
ret, label, center = cv2.kmeans(
pixels, 2, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
# one is black, another is the team color.
colors = np.array(center, dtype=np.uint8).reshape((1, 2, 3))
colors_hsv = cv2.cvtColor(colors, cv2.COLOR_BGR2HSV)
x = np.argmax(colors_hsv[:, :, 2])
team_color_bgr = colors[0, x, :]
team_color_hsv = colors_hsv[0, x, :]
return {
'rgb': cv2.cvtColor(colors, cv2.COLOR_BGR2RGB).tolist()[0][x],
'hsv': cv2.cvtColor(colors, cv2.COLOR_BGR2HSV).tolist()[0][x],
}
示例4: calculateCorners
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def calculateCorners(self, gray, points=None):
'''
gray is OpenCV gray image,
points is Marker.points
>>> marker.calculateCorners(gray)
>>> print(marker.corners)
'''
if points is None: points = self.points
if points is None: raise TypeError('calculateCorners need a points value')
'''
rotations = 0 -> 0,1,2,3
rotations = 1 -> 3,0,1,2
rotations = 2 -> 2,3,0,1
rotations = 3 -> 1,2,3,0
=> A: 1,0,3,2; B: 0,3,2,1; C: 2,1,0,3; D: 3,2,1,0
'''
i = self.rotations
A = (1,0,3,2)[i]; B = (0,3,2,1)[i]; C = (2,1,0,3)[i]; D = (3,2,1,0)[i]
corners = np.float32([points[A], points[B], points[C], points[D]])
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.1)
self.corners = cv2.cornerSubPix(gray, corners, (5,5), (-1,-1), criteria)
示例5: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def __init__(self, piscopeController):
Thread.__init__(self)
self.mutex = Lock()
self.piscopeController = piscopeController
self.setDaemon(True) # terminate on exit
self.status = "Initial"
self.reset()
self.lk_params = dict( winSize = (15, 15),
maxLevel = 2,
criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))
self.feature_params = dict( maxCorners = 5,
qualityLevel = 0.3,
minDistance = 7,
blockSize = 7 )
示例6: align
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def align(self, blob):
"""Aligns the positions of active and inactive tracks depending on camera motion."""
if self.im_index > 0:
im1 = np.transpose(self.last_image.cpu().numpy(), (1, 2, 0))
im2 = np.transpose(blob['img'][0].cpu().numpy(), (1, 2, 0))
im1_gray = cv2.cvtColor(im1, cv2.COLOR_RGB2GRAY)
im2_gray = cv2.cvtColor(im2, cv2.COLOR_RGB2GRAY)
warp_matrix = np.eye(2, 3, dtype=np.float32)
criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, self.number_of_iterations, self.termination_eps)
cc, warp_matrix = cv2.findTransformECC(im1_gray, im2_gray, warp_matrix, self.warp_mode, criteria)
warp_matrix = torch.from_numpy(warp_matrix)
for t in self.tracks:
t.pos = warp_pos(t.pos, warp_matrix)
# t.pos = clip_boxes(Variable(pos), blob['im_info'][0][:2]).data
if self.do_reid:
for t in self.inactive_tracks:
t.pos = warp_pos(t.pos, warp_matrix)
if self.motion_model_cfg['enabled']:
for t in self.tracks:
for i in range(len(t.last_pos)):
t.last_pos[i] = warp_pos(t.last_pos[i], warp_matrix)
示例7: feature_tracking
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def feature_tracking(img1,img2, points1,points2,status): #track matching features
err = np.array([])
winSize = (15,15)
maxLevel = 3
termcriteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 30, 0.01))
cv2.calcOpticalFlowPyrLK(img1, img2, points1, points2, status, err, winSize, maxLevel, termcriteria, 0, 0.001)
indexcorrection = 0
#remove bad points
for i in range(len(status)):
pt = points2[i - indexcorrection]
if (status[i]==0 or pt[0,0]<0 or pt[0,1]<0):
if pt[0,0]<0 or pt[0,1]<0:
status[i]=0
np.delete(points1, i-indexcorrection)
np.delete(points2, i-indexcorrection)
indexcorrection+=1
示例8: get_vectors
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def get_vectors(image, points, mtx, dist):
# order points
points = _order_points(points)
# set up criteria, image, points and axis
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
imgp = np.array(points, dtype='float32')
objp = np.array([[0.,0.,0.],[1.,0.,0.],
[1.,1.,0.],[0.,1.,0.]], dtype='float32')
# calculate rotation and translation vectors
cv2.cornerSubPix(gray,imgp,(11,11),(-1,-1),criteria)
rvecs, tvecs, _ = cv2.solvePnPRansac(objp, imgp, mtx, dist)
return rvecs, tvecs
示例9: color_quantization
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def color_quantization(image, k):
"""Performs color quantization using K-means clustering algorithm"""
# Transform image into 'data':
data = np.float32(image).reshape((-1, 3))
# print(data.shape)
# Define the algorithm termination criteria (the maximum number of iterations and/or the desired accuracy):
# In this case the maximum number of iterations is set to 20 and epsilon = 1.0
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 20, 1.0)
# Apply K-means clustering algorithm:
ret, label, center = cv2.kmeans(data, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
# At this point we can make the image with k colors
# Convert center to uint8:
center = np.uint8(center)
# Replace pixel values with their center value:
result = center[label.flatten()]
result = result.reshape(img.shape)
return result
# Create the dimensions of the figure and set title:
開發者ID:PacktPublishing,項目名稱:Mastering-OpenCV-4-with-Python,代碼行數:26,代碼來源:k_means_color_quantization.py
示例10: kmeans
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def kmeans(samples, k, criteria = None, attempts = 3, flags = None):
import cv2
if flags == None:
flags = cv2.KMEANS_RANDOM_CENTERS
if criteria == None:
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
samples = np.asarray(samples, dtype = np.float32)
_,labels,centers = cv2.kmeans(samples, k, criteria, attempts, flags)
labels = util.np.flatten(labels)
clusters = [None]*k
for idx, label in enumerate(labels):
if clusters[label] is None:
clusters[label] = []
clusters[label].append(idx)
for idx, cluster in enumerate(clusters):
if cluster == None:
logging.warn('Empty cluster appeared.')
clusters[idx] = []
return labels, clusters, centers
示例11: live_calibrate
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def live_calibrate(camera, pattern_shape, n_matches_needed):
""" Find calibration parameters as the user moves a checkerboard in front of the camera """
print("Looking for %s checkerboard" % (pattern_shape,))
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
example_3d = np.zeros((pattern_shape[0] * pattern_shape[1], 3), np.float32)
example_3d[:, :2] = np.mgrid[0 : pattern_shape[1], 0 : pattern_shape[0]].T.reshape(-1, 2)
points_3d = []
points_2d = []
while len(points_3d) < n_matches_needed:
ret, frame = camera.cap.read()
assert ret
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findCirclesGrid(
gray_frame, pattern_shape, flags=cv2.CALIB_CB_ASYMMETRIC_GRID
)
cv2.imshow("camera", frame)
if ret:
points_3d.append(example_3d.copy())
points_2d.append(corners)
print("Found calibration %i of %i" % (len(points_3d), n_matches_needed))
drawn_frame = cv2.drawChessboardCorners(frame, pattern_shape, corners, ret)
cv2.imshow("calib", drawn_frame)
cv2.waitKey(10)
ret, camera_matrix, distortion_coefficients, _, _ = cv2.calibrateCamera(
points_3d, points_2d, gray_frame.shape[::-1], None, None
)
assert ret
return camera_matrix, distortion_coefficients
示例12: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def __init__(self):
self.term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)
self.tracks = []
self.current_track = 0
示例13: kmeans
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def kmeans(vs, ks, niter):
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER,
niter, 0.01)
flags = cv2.KMEANS_RANDOM_CENTERS
compactness, labels, centers = cv2.kmeans(
vs, ks, criteria, 1, flags)
return centers
示例14: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def __init__(self):
self.track_len = 5
self.tracks = []
self.lk_params = dict(winSize=(15, 15),
maxLevel=2,
criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))
self.feature_params = dict(maxCorners=500,
qualityLevel=0.3,
minDistance=7,
blockSize=7)
示例15: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import TERM_CRITERIA_EPS [as 別名]
def __init__(self, videoSource, featurePtMask=None, verbosity=0):
# cap the length of optical flow tracks
self.maxTrackLength = 10
# detect feature points in intervals of frames; adds robustness for
# when feature points disappear.
self.detectionInterval = 5
# Params for Shi-Tomasi corner (feature point) detection
self.featureParams = dict(
maxCorners=500,
qualityLevel=0.3,
minDistance=7,
blockSize=7
)
# Params for Lucas-Kanade optical flow
self.lkParams = dict(
winSize=(15, 15),
maxLevel=2,
criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03)
)
# # Alternatively use a fast feature detector
# self.fast = cv2.FastFeatureDetector_create(500)
self.verbosity = verbosity
(self.videoStream,
self.width,
self.height,
self.featurePtMask) = self._initializeCamera(videoSource)