def main(): img = cv2.imread('Lenna.jpg', 3) print(img.shape) img = tr.RGB2YCBCR(img) Y, Cr, Cb = cv2.split(img) pathlib.Path('./SecondAttempt').mkdir(parents=True, exist_ok=True) (Sl, (Sh1, Sv1, Sd1), (Sh2, Sv2, Sd2)) = pywt.wavedec2(Y, 'db1', level=2) ReducedCb = downscale_local_mean(Cb, (2, 2)) ReducedCr = downscale_local_mean(Cr, (2, 2)) CbPlus = ReducedCb CbMinus = ReducedCb for i in range(0, ReducedCb.shape[0]): for j in range(0, ReducedCb.shape[1]): if ReducedCb[i, j] < 0: CbPlus[i, j] = 0 elif ReducedCb[i, j] > 0: CbMinus[i, j] = 0 CrPlus = ReducedCr CrMinus = ReducedCr for i in range(0, ReducedCr.shape[0]): for j in range(0, ReducedCr.shape[1]): if ReducedCr[i, j] < 0: CrPlus[i, j] = 0 elif ReducedCb[i, j] > 0: CrMinus[i, j] = 0 ReducedCbMinus = downscale_local_mean(CbMinus, (2, 2)) # Sd1 = ReducedCbMinus # Sh2 = CrPlus # Sv2 = CbPlus # Sd2 = CrMinus NewYSecondTry = pywt.waverec2( (Sl, (Sh1, Sv1, ReducedCbMinus), (CrPlus, CbPlus, CrMinus)), 'db1') cv2.imwrite("./SecondAttempt/NewYSecondTry.jpg", NewYSecondTry) cv2.waitKey(0) cv2.destroyAllWindows() h = hf.Halftone('./SecondAttempt/NewYSecondTry.jpg') h.make(angles=[0, 15, 30, 45], antialias=True, percentage=10, sample=1, scale=2, style='grayscale')
def main(): img = cv2.imread('Lenna.jpg', 3) img = tr.RGB2YCBCR(img) Y, Cr, Cb = cv2.split(img) print(Y.shape) pathlib.Path('./FirstAttempt').mkdir(parents=True, exist_ok=True) cv2.imwrite("./FirstAttempt/OldY.jpg", Y) cv2.waitKey(0) cv2.destroyAllWindows() (Sl, (Sh, Sv, Sd)) = pywt.dwt2(Y, 'haar') ReducedCb = downscale_local_mean(Cb, (2, 2)) ReducedCr = downscale_local_mean(Cr, (2, 2)) # Sh = ReducedCb # Sv = ReducedCr NewY = pywt.idwt2((Sl, (ReducedCb, ReducedCr, Sd)), 'haar') cv2.imwrite("./FirstAttempt/NewYFirstTry.jpg", NewY) cv2.waitKey(0) cv2.destroyAllWindows() h = hf.Halftone('./FirstAttempt/NewYFirstTry.jpg') h.make(angles=[0, 15, 30, 45], antialias=True, percentage=10, sample=1, scale=2, style='grayscale')