Python cv2.COLOR_HSV2RGB Examples
The following are 30
code examples of cv2.COLOR_HSV2RGB().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cv2
, or try the search function
.
Example #1
Source File: batch_generator.py From fcn8s_tensorflow with GNU General Public License v3.0 | 7 votes |
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)
Example #2
Source File: object_detection_2d_photometric_ops.py From data_generator_object_detection_2d with GNU General Public License v3.0 | 7 votes |
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
Example #3
Source File: image.py From keras-yolo3 with MIT License | 6 votes |
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)
Example #4
Source File: functional.py From albumentations with MIT License | 6 votes |
def _shift_hsv_non_uint8(img, hue_shift, sat_shift, val_shift): dtype = img.dtype img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV) hue, sat, val = cv2.split(img) if hue_shift != 0: hue = cv2.add(hue, hue_shift) hue = np.where(hue < 0, hue + 180, hue) hue = np.where(hue > 180, hue - 180, hue) hue = hue.astype(dtype) if sat_shift != 0: sat = clip(cv2.add(sat, sat_shift), dtype, 255 if dtype == np.uint8 else 1.0) if val_shift != 0: val = clip(cv2.add(val, val_shift), dtype, 255 if dtype == np.uint8 else 1.0) img = cv2.merge((hue, sat, val)).astype(dtype) img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) return img
Example #5
Source File: pil_aug_transforms.py From openseg.pytorch with MIT License | 6 votes |
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
Example #6
Source File: generator.py From keras-image-segmentation with MIT License | 6 votes |
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)
Example #7
Source File: dp.py From pytorch_stacked_hourglass with BSD 3-Clause "New" or "Revised" License | 6 votes |
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
Example #8
Source File: object_detection_2d_photometric_ops.py From ssd_keras with Apache License 2.0 | 6 votes |
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
Example #9
Source File: chineselib.py From ctw-baseline with MIT License | 6 votes |
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
Example #10
Source File: utils.py From DirectML with MIT License | 6 votes |
def get_class_colors(colors_file_path, class_names, as_float=False): color_map = {} if os.path.exists(colors_file_path): with open(colors_file_path) as colors_file: color_map = json.loads(colors_file.read()) class_colors = [] for i in range(len(class_names)): class_name = class_names[i] if class_name in color_map: class_colors.append(color_map[class_name]) else: hsv = np.array([[[np.random.randint(0,255), 200, 200]]], dtype=np.uint8) rgb = cv2.cvtColor(hsv, cv2.COLOR_HSV2RGB) class_colors.append((int(rgb.flat[0]), int(rgb.flat[1]), int(rgb.flat[2]))) if as_float: color = class_colors[i] class_colors[i] = (color[0] / 255.0, color[1] / 255.0, color[2] / 255.0) return class_colors
Example #11
Source File: functional.py From albumentations with MIT License | 6 votes |
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
Example #12
Source File: image.py From ImageAI with MIT License | 6 votes |
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)
Example #13
Source File: utils.py From BlenderProc with GNU General Public License v3.0 | 6 votes |
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)
Example #14
Source File: object_detection_2d_photometric_ops.py From Tensorflow-quantization-test with Apache License 2.0 | 6 votes |
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
Example #15
Source File: transforms.py From SSD-variants with MIT License | 6 votes |
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
Example #16
Source File: test_color.py From imgaug with MIT License | 6 votes |
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)
Example #17
Source File: object_detection_2d_photometric_ops.py From keras-FP16-test with Apache License 2.0 | 6 votes |
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
Example #18
Source File: transform.py From deeplabv3plus-pytorch with MIT License | 6 votes |
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
Example #19
Source File: dp.py From pose-ae-train with BSD 3-Clause "New" or "Revised" License | 6 votes |
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
Example #20
Source File: images_data_augmenter_seqaware.py From RecurrentGaze with MIT License | 6 votes |
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
Example #21
Source File: functional.py From dsb2018_topcoders with MIT License | 5 votes |
def shift_hsv(img, hue_shift, sat_shift, val_shift): dtype = img.dtype img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV).astype(np.int32) h, s, v = cv2.split(img) h = cv2.add(h, hue_shift) h = np.where(h < 0, 255 - h, h) h = np.where(h > 255, h - 255, h) h = h.astype(dtype) s = clip(cv2.add(s, sat_shift), dtype, 255 if dtype == np.uint8 else 1.) v = clip(cv2.add(v, val_shift), dtype, 255 if dtype == np.uint8 else 1.) img = cv2.merge((h, s, v)).astype(dtype) img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) return img
Example #22
Source File: data_augmentation.py From Yolo-v2-pytorch with MIT License | 5 votes |
def __call__(self, data): def clip_hue(hue_channel): hue_channel[hue_channel >= 360] -= 360 hue_channel[hue_channel < 0] += 360 return hue_channel image, label = data adjust_hue = uniform(-self.hue, self.hue) adjust_saturation = uniform(1, self.saturation) if uniform(0, 1) >= self.prob: adjust_saturation = 1 / adjust_saturation adjust_value = uniform(1, self.value) if uniform(0, 1) >= self.prob: adjust_value = 1 / adjust_value image = image.astype(np.float32) / 255 image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV) image[:, :, 0] += adjust_hue image[:, :, 0] = clip_hue(image[:, :, 0]) image[:, :, 1] = np.clip(adjust_saturation * image[:, :, 1], 0.0, 1.0) image[:, :, 2] = np.clip(adjust_value * image[:, :, 2], 0.0, 1.0) image = cv2.cvtColor(image, cv2.COLOR_HSV2RGB) image = (image * 255).astype(np.float32) return image, label
Example #23
Source File: colorize.py From SRNet-Datagen with Apache License 2.0 | 5 votes |
def change_value(self, col_rgb, v_std=50): col = np.squeeze(cv2.cvtColor(col_rgb[None,None,:], cv2.COLOR_RGB2HSV)) x = col[2] vs = np.linspace(0,1) ps = np.abs(vs - x / 255.0) ps /= np.sum(ps) v_rand = np.clip(np.random.choice(vs, p = ps) + 0.1 * np.random.randn(), 0, 1) col[2] = 255 * v_rand return np.squeeze(cv2.cvtColor(col[None,None,:], cv2.COLOR_HSV2RGB))
Example #24
Source File: colorize.py From SRNet-Datagen with Apache License 2.0 | 5 votes |
def triangle_color(self, col1, col2): col1, col2 = np.array(col1), np.array(col2) col1 = np.squeeze(cv2.cvtColor(col1[None,None,:], cv2.COLOR_RGB2HSV)) col2 = np.squeeze(cv2.cvtColor(col2[None,None,:], cv2.COLOR_RGB2HSV)) h1, h2 = col1[0], col2[0] if h2 < h1: h1, h2 = h2, h1 #swap dh = h2 - h1 if dh < 127: dh = 255 - dh col1[0] = h1 + dh / 2 return np.squeeze(cv2.cvtColor(col1[None,None,:],cv2.COLOR_HSV2RGB))
Example #25
Source File: augmenters.py From netharn with Apache License 2.0 | 5 votes |
def demodata_hsv_image(w=200, h=200): """ Example: >>> rgb255 = demodata_hsv_image() >>> # xdoctest: +REQUIRES(--show) >>> import kwplot >>> kwplot.autompl() >>> kwplot.figure(doclf=True, fnum=1) >>> kwplot.imshow(rgb255, colorspace='rgb') >>> kwplot.show_if_requested() """ hsv = np.zeros((h, w, 3), dtype=np.float32) hue = np.linspace(0, 360, num=w) hsv[:, :, 0] = hue[None, :] sat = np.linspace(0, 1, num=h) hsv[:, :, 1] = sat[:, None] val = np.linspace(0, 1, num=3) parts = [] for v in val: p = hsv.copy() p[:, :, 2] = v parts.append(p) final_hsv = np.hstack(parts) rgb01 = cv2.cvtColor(final_hsv, cv2.COLOR_HSV2RGB) rgb255 = (rgb01 * 255).astype(np.uint8) return rgb255
Example #26
Source File: colorize.py From SRNet-Datagen with Apache License 2.0 | 5 votes |
def complement(self, rgb_color): col_hsv = np.squeeze(cv2.cvtColor(rgb_color[None,None,:], cv2.COLOR_RGB2HSV)) col_hsv[0] = col_hsv[0] + 128 #uint8 mods to 255 col_comp = np.squeeze(cv2.cvtColor(col_hsv[None,None,:], cv2.COLOR_HSV2RGB)) return col_comp
Example #27
Source File: functional.py From dsb2018_topcoders with MIT License | 5 votes |
def shift_hsv(img, hue_shift, sat_shift, val_shift): dtype = img.dtype img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV).astype(np.int32) h, s, v = cv2.split(img) h = cv2.add(h, hue_shift) h = np.where(h < 0, 255 - h, h) h = np.where(h > 255, h - 255, h) h = h.astype(dtype) s = clip(cv2.add(s, sat_shift), dtype, 255 if dtype == np.uint8 else 1.) v = clip(cv2.add(v, val_shift), dtype, 255 if dtype == np.uint8 else 1.) img = cv2.merge((h, s, v)).astype(dtype) img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) return img
Example #28
Source File: augmentationsk.py From DewarpNet with MIT License | 5 votes |
def color_jitter(im, brightness=0, contrast=0, saturation=0, hue=0): f = random.uniform(1 - contrast, 1 + contrast) im = np.clip(im * f, 0., 1.) f = random.uniform(-brightness, brightness) im = np.clip(im + f, 0., 1.).astype(np.float32) # hsv = cv2.cvtColor(im, cv2.COLOR_RGB2HSV) # f = random.uniform(-hue, hue) # hsv[0] = np.clip(hsv[0] + f * 360, 0., 360.) # f = random.uniform(-saturation, saturation) # hsv[2] = np.clip(hsv[2] + f, 0., 1.) # im = cv2.cvtColor(hsv, cv2.COLOR_HSV2RGB) # im = np.clip(im, 0., 1.) return im
Example #29
Source File: functional.py From dsb2018_topcoders with MIT License | 5 votes |
def shift_hsv(img, hue_shift, sat_shift, val_shift): dtype = img.dtype img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV).astype(np.int32) h, s, v = cv2.split(img) h = cv2.add(h, hue_shift) h = np.where(h < 0, 255 - h, h) h = np.where(h > 255, h - 255, h) h = h.astype(dtype) s = clip(cv2.add(s, sat_shift), dtype, 255 if dtype == np.uint8 else 1.) v = clip(cv2.add(v, val_shift), dtype, 255 if dtype == np.uint8 else 1.) img = cv2.merge((h, s, v)).astype(dtype) img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) return img
Example #30
Source File: colorize.py From SRNet-Datagen with Apache License 2.0 | 5 votes |
def mean_color(self, arr): col = cv2.cvtColor(arr, cv2.COLOR_RGB2HSV) col = np.reshape(col, (np.prod(col.shape[:2]),3)) col = np.mean(col, axis = 0).astype(np.uint8) return np.squeeze(cv2.cvtColor(col[None,None,:], cv2.COLOR_HSV2RGB))