def test_detect():
dev = AndroidDeviceMinicap()
dev._adb.start_minitouch()
time.sleep(3)
d = SceneDetector('txxscene')
old, new = None, None
while True:
# time.sleep(0.3)
screen = dev.screenshot_cv2()
h, w = screen.shape[:2]
img = cv2.resize(screen, (w/2, h/2))
# find hsv
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hls = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)
_, _, V = cv2.split(hsv)
V[V<150] = 0
cv2.imshow('V', V)
_, _, L = cv2.split(hls)
L[L<150] = 0
cv2.imshow('H', L)
tic = time.clock()
new = str(d.detect(img))
t = time.clock() - tic
if new != old:
print 'change to', new
print 'cost time', t
old = new
for _, r in d.current_scene:
x, y, x1, y1 = r
cv2.rectangle(img, (x,y), (x1,y1), (0,255,0) ,2)
cv2.imshow('test', img)
cv2.waitKey(1)
python类COLOR_BGR2HLS的实例源码
def test_detect():
dev = AndroidDeviceMinicap()
dev._adb.start_minitouch()
time.sleep(3)
d = SceneDetector('txxscene')
old, new = None, None
while True:
# time.sleep(0.3)
screen = dev.screenshot_cv2()
h, w = screen.shape[:2]
img = cv2.resize(screen, (w/2, h/2))
# find hsv
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hls = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)
_, _, V = cv2.split(hsv)
V[V<150] = 0
cv2.imshow('V', V)
_, _, L = cv2.split(hls)
L[L<150] = 0
cv2.imshow('H', L)
tic = time.clock()
new = str(d.detect(img))
t = time.clock() - tic
if new != old:
print 'change to', new
print 'cost time', t
old = new
for _, r in d.current_scene:
x, y, x1, y1 = r
cv2.rectangle(img, (x,y), (x1,y1), (0,255,0) ,2)
cv2.imshow('test', img)
cv2.waitKey(1)
def __hsl_threshold(input, hue, sat, lum):
"""Segment an image based on hue, saturation, and luminance ranges.
Args:
input: A BGR numpy.ndarray.
hue: A list of two numbers the are the min and max hue.
sat: A list of two numbers the are the min and max saturation.
lum: A list of two numbers the are the min and max luminance.
Returns:
A black and white numpy.ndarray.
"""
out = cv2.cvtColor(input, cv2.COLOR_BGR2HLS)
return cv2.inRange(out, (hue[0], lum[0], sat[0]), (hue[1], lum[1], sat[1]))
def __hsl_threshold(input, hue, sat, lum):
"""Segment an image based on hue, saturation, and luminance ranges.
Args:
input: A BGR numpy.ndarray.
hue: A list of two numbers the are the min and max hue.
sat: A list of two numbers the are the min and max saturation.
lum: A list of two numbers the are the min and max luminance.
Returns:
A black and white numpy.ndarray.
"""
out = cv2.cvtColor(input, cv2.COLOR_BGR2HLS)
return cv2.inRange(out, (hue[0], lum[0], sat[0]), (hue[1], lum[1], sat[1]))
def __hsl_threshold(input, hue, sat, lum):
"""Segment an image based on hue, saturation, and luminance ranges.
Args:
input: A BGR numpy.ndarray.
hue: A list of two numbers the are the min and max hue.
sat: A list of two numbers the are the min and max saturation.
lum: A list of two numbers the are the min and max luminance.
Returns:
A black and white numpy.ndarray.
"""
out = cv2.cvtColor(input, cv2.COLOR_BGR2HLS)
return cv2.inRange(out, (hue[0], lum[0], sat[0]), (hue[1], lum[1], sat[1]))
def __hsl_threshold(input, hue, sat, lum):
"""Segment an image based on hue, saturation, and luminance ranges.
Args:
input: A BGR numpy.ndarray.
hue: A list of two numbers the are the min and max hue.
sat: A list of two numbers the are the min and max saturation.
lum: A list of two numbers the are the min and max luminance.
Returns:
A black and white numpy.ndarray.
"""
out = cv2.cvtColor(input, cv2.COLOR_BGR2HLS)
return cv2.inRange(out, (hue[0], lum[0], sat[0]), (hue[1], lum[1], sat[1]))
def hls(img, op=None):
return cv.cvtColor(img, cv.COLOR_BGR2HLS)
def hsl_threshold(image, hue=(0, 122), sat=(126, 225), lum=(83, 255)):
# HSL threshold to highlight just the tape ([hue, sat, lum]).
hls_min = np.array([hue[0], sat[0], lum[0]])
hls_max = np.array([hue[1], sat[1], lum[1]])
image = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)
image = cv2.inRange(image, hls_min, hls_max)
return image