本文整理匯總了Python中cv2.COLOR_HSV2RGB屬性的典型用法代碼示例。如果您正苦於以下問題:Python cv2.COLOR_HSV2RGB屬性的具體用法?Python cv2.COLOR_HSV2RGB怎麽用?Python cv2.COLOR_HSV2RGB使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類cv2
的用法示例。
在下文中一共展示了cv2.COLOR_HSV2RGB屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _brightness
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def _brightness(image, min=0.5, max=2.0):
'''
Randomly changes the brightness of the input image.
Protected against overflow.
'''
hsv = cv2.cvtColor(image,cv2.COLOR_RGB2HSV)
random_br = np.random.uniform(min,max)
#To protect against overflow: Calculate a mask for all pixels
#where adjustment of the brightness would exceed the maximum
#brightness value and set the value to the maximum at those pixels.
mask = hsv[:,:,2] * random_br > 255
v_channel = np.where(mask, 255, hsv[:,:,2] * random_br)
hsv[:,:,2] = v_channel
return cv2.cvtColor(hsv,cv2.COLOR_HSV2RGB)
示例2: __call__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def __call__(self, image, labels=None):
if self.current == 'RGB' and self.to == 'HSV':
image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
elif self.current == 'RGB' and self.to == 'GRAY':
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
if self.keep_3ch:
image = np.stack([image] * 3, axis=-1)
elif self.current == 'HSV' and self.to == 'RGB':
image = cv2.cvtColor(image, cv2.COLOR_HSV2RGB)
elif self.current == 'HSV' and self.to == 'GRAY':
image = cv2.cvtColor(image, cv2.COLOR_HSV2GRAY)
if self.keep_3ch:
image = np.stack([image] * 3, axis=-1)
if labels is None:
return image
else:
return image, labels
開發者ID:pierluigiferrari,項目名稱:data_generator_object_detection_2d,代碼行數:19,代碼來源:object_detection_2d_photometric_ops.py
示例3: cv_preprocess_image
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def cv_preprocess_image(img, output_height, output_width, is_training):
assert output_height == output_width
img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
img[:, :, 0] = np.uint8((np.int32(img[:, :, 0]) + (180 + random.randrange(-9, 10))) % 180)
img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB)
rows, cols, ch = img.shape
output_size = output_width
def r():
return (random.random() - 0.5) * 0.1 * output_size
pts1 = np.float32([[0, 0], [cols, rows], [0, rows]])
pts2 = np.float32([[r(), r()], [output_size + r(), output_size + r()], [r(), output_size + r()]])
M = cv2.getAffineTransform(pts1, pts2)
noize = np.random.normal(0, random.random() * (0.05 * 255), size=img.shape)
img = np.array(img, dtype=np.float32) + noize
img = cv2.warpAffine(img, M, (output_size, output_size), flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_REFLECT_101)
return img
示例4: preprocess
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def preprocess(self, data):
# random hue and saturation
data = cv2.cvtColor(data, cv2.COLOR_RGB2HSV);
delta = (np.random.random() * 2 - 1) * 0.2
data[:, :, 0] = np.mod(data[:,:,0] + (delta * 360 + 360.), 360.)
delta_sature = np.random.random() + 0.5
data[:, :, 1] *= delta_sature
data[:,:, 1] = np.maximum( np.minimum(data[:,:,1], 1), 0 )
data = cv2.cvtColor(data, cv2.COLOR_HSV2RGB)
# adjust brightness
delta = (np.random.random() * 2 - 1) * 0.3
data += delta
# adjust contrast
mean = data.mean(axis=2, keepdims=True)
data = (data - mean) * (np.random.random() + 0.5) + mean
data = np.minimum(np.maximum(data, 0), 1)
return data
示例5: pre_processing
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def pre_processing(img):
# Random exposure and saturation (0.9 ~ 1.1 scale)
rand_s = random.uniform(0.9, 1.1)
rand_v = random.uniform(0.9, 1.1)
img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
tmp = np.ones_like(img[:, :, 1]) * 255
img[:, :, 1] = np.where(img[:, :, 1] * rand_s > 255, tmp, img[:, :, 1] * rand_s)
img[:, :, 2] = np.where(img[:, :, 2] * rand_v > 255, tmp, img[:, :, 2] * rand_v)
img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB)
# Centering helps normalization image (-1 ~ 1 value)
return img / 127.5 - 1
# Get ImageDataGenerator arguments(options) depends on mode - (train, val, test)
示例6: __call__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def __call__(self, img, labelmap=None, maskmap=None):
assert isinstance(img, Image.Image)
assert labelmap is None or isinstance(labelmap, Image.Image)
assert maskmap is None or isinstance(maskmap, Image.Image)
if random.random() > self.ratio:
return img, labelmap, maskmap
img = np.array(img).astype(np.float32)
img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
img[:, :, 0] += random.uniform(-self.delta, self.delta)
img[:, :, 0][img[:, :, 0] > 360] -= 360
img[:, :, 0][img[:, :, 0] < 0] += 360
img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB)
img = np.clip(img, 0, 255)
return Image.fromarray(img.astype(np.uint8)), labelmap, maskmap
示例7: modify_illumination
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def modify_illumination(images: list, ilrange: list, random_bright: float=None):
"""
Convert images to HSV color space, modify Value channel according to random brightness value and convert back to
RGB. If random_bright is None, the random brightness value is uniformly sampled from ilrange tuple, otherwise
random_bright is directly used. This brightness value is multiplied to the original Value channel.
:param images: list of images
:param ilrange: illumination range (min, max) from which the brightness value is uniformly sampled if random_bright is None.
:param random_bright: optional value specifying the brightness multiplier.
:return: transformed images, random_bright value
"""
if random_bright is None:
random_bright = np.random.uniform(ilrange[0], ilrange[1])
new_images = []
for image in images:
image1 = cv.cvtColor(image, cv.COLOR_RGB2HSV)
image1[:, :, 2] = image1[:, :, 2] * random_bright
image1[:, :, 2] = np.clip(image1[:, :, 2], 0., 255.)
image1 = cv.cvtColor(image1, cv.COLOR_HSV2RGB)
new_images.append(image1)
return new_images, random_bright
示例8: random_distort_image
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def random_distort_image(image, hue=18, saturation=1.5, exposure=1.5):
# determine scale factors
dhue = np.random.uniform(-hue, hue)
dsat = _rand_scale(saturation)
dexp = _rand_scale(exposure)
# convert RGB space to HSV space
image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV).astype('float')
# change satuation and exposure
image[:, :, 1] *= dsat
image[:, :, 2] *= dexp
# change hue
image[:, :, 0] += dhue
image[:, :, 0] -= (image[:, :, 0] > 180) * 180
image[:, :, 0] += (image[:, :, 0] < 0) * 180
# convert back to RGB from HSV
return cv2.cvtColor(image.astype('uint8'), cv2.COLOR_HSV2RGB)
示例9: preprocess
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def preprocess(self, data):
# random hue and saturation
data = cv2.cvtColor(data, cv2.COLOR_RGB2HSV);
delta = (np.random.random() * 2 - 1) * 0.2
data[:, :, 0] = np.mod(data[:,:,0] + (delta * 360 + 360.), 360.)
delta_sature = np.random.random() + 0.5
data[:, :, 1] *= delta_sature
data[:,:, 1] = np.maximum( np.minimum(data[:,:,1], 1), 0 )
data = cv2.cvtColor(data, cv2.COLOR_HSV2RGB)
# adjust brightness
delta = (np.random.random() * 2 - 1) * 0.3
data += delta
# adjust contrast
mean = data.mean(axis=2, keepdims=True)
data = (data - mean) * (np.random.random() + 0.5) + mean
data = np.minimum(np.maximum(data, 0), 1)
#cv2.imwrite('x.jpg', (data*255).astype(np.uint8))
return data
示例10: _add_hue_saturation
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def _add_hue_saturation(cls, img, value=None, value_hue=None,
value_saturation=None):
if value is not None:
assert value_hue is None and value_saturation is None
else:
assert value_hue is not None or value_saturation is not None
if value is not None:
value_hue = value
value_saturation = value
else:
value_hue = value_hue or 0
value_saturation = value_saturation or 0
img_hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
img_hsv = img_hsv.astype(np.int32)
img_hsv[..., 0] = np.mod(
img_hsv[..., 0] + int((value_hue/255.0) * (360/2)), 180)
img_hsv[..., 1] = np.clip(
img_hsv[..., 1] + value_saturation, 0, 255)
img_hsv = img_hsv.astype(np.uint8)
return cv2.cvtColor(img_hsv, cv2.COLOR_HSV2RGB)
示例11: __call__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def __call__(self, img):
assert img.ndim == 3 and img.shape[2] == 3
if self.random.random_sample() >= self.prob:
return img
var = self.random.uniform(-self.var, self.var)
to_HSV, from_HSV = [(cv2.COLOR_RGB2HSV, cv2.COLOR_HSV2RGB),
(cv2.COLOR_BGR2HSV, cv2.COLOR_HSV2BGR)][self.random.randint(2)]
hsv = cv2.cvtColor(img, to_HSV).astype(np.float32)
hue = hsv[:, :, 0] / 179. + var
hue = hue - np.floor(hue)
hsv[:, :, 0] = hue * 179.
img = cv2.cvtColor(hsv.astype('uint8'), from_HSV)
return img
示例12: random_distort_image
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def random_distort_image(image, hue=18, saturation=1.5, exposure=1.5):
# determine scale factors
dhue = np.random.uniform(-hue, hue)
dsat = _rand_scale(saturation);
dexp = _rand_scale(exposure);
# convert RGB space to HSV space
image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV).astype('float')
# change satuation and exposure
image[:,:,1] *= dsat
image[:,:,2] *= dexp
# change hue
image[:,:,0] += dhue
image[:,:,0] -= (image[:,:,0] > 180)*180
image[:,:,0] += (image[:,:,0] < 0) *180
# convert back to RGB from HSV
return cv2.cvtColor(image.astype('uint8'), cv2.COLOR_HSV2RGB)
示例13: flow_to_rgb
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def flow_to_rgb(flow):
"""
Visualizes optical flow in hsv space and converts it to rgb space.
:param flow: (np.array (h, w, c)) optical flow
:return: (np.array (h, w, c)) rgb data
"""
im1 = flow[:, :, 0]
im2 = flow[:, :, 1]
h, w = flow.shape[:2]
# Use Hue, Saturation, Value colour model
hsv = np.zeros((h, w, 3), dtype=np.float32)
hsv[..., 1] = 1
mag, ang = cv2.cartToPolar(im1, im2)
hsv[..., 0] = ang * 180 / np.pi
hsv[..., 2] = cv2.normalize(mag, None, 0, 1, cv2.NORM_MINMAX)
return cv2.cvtColor(hsv, cv2.COLOR_HSV2RGB)
示例14: __call__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def __call__(self, sample):
image = sample['image']
hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
h = hsv[:,:,0].astype(np.int32)
s = hsv[:,:,1].astype(np.int32)
v = hsv[:,:,2].astype(np.int32)
delta_h = np.random.randint(-self.h_r,self.h_r)
delta_s = np.random.randint(-self.s_r,self.s_r)
delta_v = np.random.randint(-self.v_r,self.v_r)
h = (h + delta_h)%180
s = s + delta_s
s[s>255] = 255
s[s<0] = 0
v = v + delta_v
v[v>255] = 255
v[v<0] = 0
hsv = np.stack([h,s,v], axis=-1).astype(np.uint8)
image = cv2.cvtColor(hsv, cv2.COLOR_HSV2RGB).astype(np.uint8)
sample['image'] = image
return sample
示例15: _shift_hsv_uint8
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import COLOR_HSV2RGB [as 別名]
def _shift_hsv_uint8(img, hue_shift, sat_shift, val_shift):
dtype = img.dtype
img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
hue, sat, val = cv2.split(img)
lut_hue = np.arange(0, 256, dtype=np.int16)
lut_hue = np.mod(lut_hue + hue_shift, 180).astype(dtype)
lut_sat = np.arange(0, 256, dtype=np.int16)
lut_sat = np.clip(lut_sat + sat_shift, 0, 255).astype(dtype)
lut_val = np.arange(0, 256, dtype=np.int16)
lut_val = np.clip(lut_val + val_shift, 0, 255).astype(dtype)
hue = cv2.LUT(hue, lut_hue)
sat = cv2.LUT(sat, lut_sat)
val = cv2.LUT(val, lut_val)
img = cv2.merge((hue, sat, val)).astype(dtype)
img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB)
return img