前提・実現したいこと
ウォーターマークを抽出し、削除ができるのか試したいと考えており、以下のURLにあるpythonのコードを実行したいと考えているのですが、うまく実行することができません。
とりあえず、main.pyを実行するようにターミナルにコマンドを打ち込んでみたのですが、エラーメッセージが返ってきました。
教えていただきたいのは、ウォーターマークの抽出方法とその削除方法です。
https://github.com/Vince-Lau/automatic-watermark-detection
発生している問題・エラーメッセージ
エラーメッセージ $ python main.py Traceback (most recent call last): File "main.py", line 1, in <module> import cv2 ImportError: No module named cv2
該当のソースコード
python
1import cv2 2from src.estimate_watermark import * 3from src.preprocess import * 4from src.image_crawler import * 5from src.watermark_reconstruct import * 6 7gx, gy, gxlist, gylist = estimate_watermark('./images/fotolia_processed') 8 9# est = poisson_reconstruct(gx, gy, np.zeros(gx.shape)[:,:,0]) 10cropped_gx, cropped_gy = crop_watermark(gx, gy) 11W_m = poisson_reconstruct(cropped_gx, cropped_gy) 12 13# random photo 14img = cv2.imread('images/fotolia_processed/fotolia_137840668.jpg') 15im, start, end = watermark_detector(img, cropped_gx, cropped_gy) 16 17# plt.imshow(im) 18# plt.show() 19# We are done with watermark estimation 20# W_m is the cropped watermark 21num_images = len(gxlist) 22 23J, img_paths = get_cropped_images( 24 'images/fotolia_processed', num_images, start, end, cropped_gx.shape) 25# get a random subset of J 26idx = [389, 144, 147, 468, 423, 92, 3, 354, 196, 53, 470, 445, 314, 349, 105, 366, 56, 168, 351, 15, 465, 368, 90, 96, 202, 54, 295, 137, 17, 79, 214, 413, 454, 305, 187, 4, 458, 330, 290, 73, 220, 118, 125, 180, 247, 243, 257, 194, 117, 320, 104, 252, 87, 95, 228, 324, 271, 398, 334, 148, 425, 190, 78, 151, 34, 310, 122, 376, 102, 260] 27idx = idx[:25] 28# Wm = (255*PlotImage(W_m)) 29Wm = W_m - W_m.min() 30 31# get threshold of W_m for alpha matte estimate 32alph_est = estimate_normalized_alpha(J, Wm) 33alph = np.stack([alph_est, alph_est, alph_est], axis=2) 34C, est_Ik = estimate_blend_factor(J, Wm, alph) 35 36alpha = alph.copy() 37for i in range(3): 38 alpha[:, :, i] = C[i] * alpha[:, :, i] 39 40Wm = Wm + alpha * est_Ik 41 42W = Wm.copy() 43for i in range(3): 44 W[:, :, i] /= C[i] 45 46Jt = J[:25] 47# now we have the values of alpha, Wm, J 48# Solve for all images 49Wk, Ik, W, alpha1 = solve_images(Jt, W_m, alpha, W) 50# W_m_threshold = (255*PlotImage(np.average(W_m, axis=2))).astype(np.uint8) 51# ret, thr = cv2.threshold(W_m_threshold, 127, 255, cv2.THRESH_BINARY) 52
試したこと
実行できるようターミナルに打ち込みました。
補足情報(FW/ツールのバージョンなど)
mac OS 10.15.1
Python 3.8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。