def test_hsv2rgb_conversion(self): rgb = self.img_rgb.astype("float32")[::16, ::16] # create HSV image with colorsys hsv = np.array([colorsys.rgb_to_hsv(pt[0], pt[1], pt[2]) for pt in rgb.reshape(-1, 3)]).reshape(rgb.shape) # convert back to RGB and compare with original. # relative precision for RGB -> HSV roundtrip is about 1e-6 assert_almost_equal(rgb, hsv2rgb(hsv), decimal=4)
def test_hsv2rgb_conversion(self): rgb = self.img_rgb.astype("float32")[::16, ::16] # create HSV image with colorsys hsv = np.array([ colorsys.rgb_to_hsv(pt[0], pt[1], pt[2]) for pt in rgb.reshape(-1, 3) ]).reshape(rgb.shape) # convert back to RGB and compare with original. # relative precision for RGB -> HSV roundtrip is about 1e-6 assert_almost_equal(rgb, hsv2rgb(hsv), decimal=4)
def angle2rgb(angle, nan_color=[0, 0, 0]): H, W = angle.shape hsv = np.zeros((H, W, 3)) for i, j in itertools.product(range(H), range(W)): hsv[i, j, 0] = (angle[i, j] + np.pi) / (2 * np.pi) hsv[:, :, 1] = 1 hsv[:, :, 2] = 1 isnan = np.isnan(angle) for k in range(3): hsv[:, :, k][isnan] = nan_color[k] try: # Try old interface from scikits.image.color import hsv2rgb # @UnresolvedImport @UnusedImport except: # Try new interface from skimage.color import hsv2rgb # @Reimport rgb = (hsv2rgb(hsv) * 255).astype('uint8') return rgb