๐Ÿ’ป/๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด

[์˜์ƒ์ฒ˜๋ฆฌ] ๋งค์ง์•„์ด ์ด๋ฏธ์ง€ ํ•ด์„ ๊ตฌํ˜„

ruhz 2022. 1. 28. 02:21

  ์˜ค๋Š˜ ๋งค์ง์•„์ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ผ(?)์ด ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋Š” ๋งค์ง์•„์ด๋ฅผ ์ „ํ˜€ ํ•  ์ค„ ๋ชจ๋ฅธ๋‹ค. ํ•˜์ง€๋งŒ ๊ณฐ๊ณฐํžˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋งค์ง์•„์ด๊ฐ€ ๋‹จ์ˆœํžˆ ์ดˆ์ ์„ ์กฐ์ ˆํ•ด์„œ ๋ณด๋Š” ๊ฒƒ์ด๋ผ๋ฉด, ์™ผ์ชฝ ๋ˆˆ์œผ๋กœ ๋ณด๋Š” ์ด๋ฏธ์ง€์™€ ์˜ค๋ฅธ์ชฝ ๋ˆˆ์œผ๋กœ ๋ณด๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ ์ ˆํžˆ ๊ฒน์ณ๋ณด๋Š” ๊ฒƒ์ด ์ „๋ถ€๋ผ๋ฉด, ๊ตฌํ˜„ ๋ชปํ•  ๊ฒƒ๋„ ์—†๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋‘ ๋ˆˆ์ด ๊ฐ๊ฐ ๋ณด๋Š” ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๊ฐ€ ๋‡Œ์—์„œ ์–ด๋–ป๊ฒŒ ์กฐํ•ฉ๋˜๊ธธ๋ž˜ ๋‚ด๊ฐ€ ํ˜„์žฌ ์žฅ๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ธ์ง€ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ณธ ๊ฒƒ ์ค‘ ๋งค์ง์•„์ด์˜ ์›๋ฆฌ๋ฅผ ๊ฐ€์žฅ ์ž˜ ์„ค๋ช…ํ•ด๋†“์€ ์˜์ƒ!

 

  ๋ˆˆ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๋น›์„ ํ˜ผํ•ฉํ•˜๋Š”๊ฑฐ๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ๋”ํ•˜๊ฑฐ๋‚˜, ๋‘ ์ƒ‰์ƒ์˜ ํ‰๊ท ์„ ๋‚ด์•ผํ•˜๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งค์ง์•„์ด(๋ฟ๋งŒ ์•„๋‹ˆ๋ผ 3D์˜ํ™”, VR ๋“ฑ)๋Š” ์šฐ๋ฆฌ ๋‡Œ๊ฐ€ ์–‘์ชฝ ๋ˆˆ์ด ๋ฐ›์•„๋“ค์ด๋Š” ์ด๋ฏธ์ง€์˜ ์ฐจ์ด๋ฅผ ์ด์šฉํ•œ ๊ฒฐ๊ณผ์ด๋‹ค. ์šฐ๋ฆฌ ๋ˆˆ์€ ๊ฐ„๊ฒฉ์„ ๋‘๊ณ  ์œ„์น˜ํ•ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ›์•„๋“ค์ด๋Š” ์ด๋ฏธ์ง€์˜ ์ฐจ์ด๊ฐ€ ์žˆ๊ณ , ์šฐ๋ฆฌ ๋‡Œ๋Š” ๊ฑฐ๋ฆฌ๊ฐ์„ ํŒŒ์•…์„ ์œ„ํ•ด ์ด ์ฐจ์ด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณ„์‚ฐํ•ด ์ž…์ฒด์ ์ธ ๊ณต๊ฐ„์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•œ๋‹ค. ๊ฒฐ๊ตญ ๋”ํ•˜๊ฑฐ๋‚˜ ํ‰๊ท ์„ ๋‚ด๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ๋‡Œ์˜ ์ž‘๋™์›๋ฆฌ๋ฅผ ๊ณ ๋ คํ–ˆ์„ ๋•Œ, ๋‘ ์ด๋ฏธ์ง€์˜ ์ฐจ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๋‹ค. ์œ„ ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋” ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค.

 

๋ฐฉํ–ฅ์„ ์ •ํ•˜๊ณ  ๊ตฌํ˜„์„ ์œ„ํ•ด ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ค๊ฐ€ ๋งค์ง์•„์ด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘, ํฌํ† ์ƒต์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํ˜ผํ•ฉ ๋ชจ๋“œ๋ฅผ '์ฐจ์ด'๋กœ ๋†“๊ณ  ํ•ฉ์ณ์„œ ๋ณด๋ฉด ์ˆจ๊ฒจ์ง„ ๊ทธ๋ฆผ์ด ๋ณด์ธ๋‹ค๋Š” ๊ธ€์ด ์žˆ์—ˆ๋‹ค. ์ด ๊ฒƒ์ด ๊ตฌํ˜„์˜ ๋‹จ์„œ๊ฐ€ ๋ ๊นŒ ์‹ถ์–ด Photoshop์˜ ๋„ํ๋จผํŠธ๋ฅผ ์ฐพ์•„๋ดค๋‹ค. 

 

 

Blending modes in Adobe Photoshop

Adds the red, green and blue channel values of the blend color to the RGB values of the base color. If the resulting sum for a channel is 255 or greater, it receives a value of 255; if less than 255, a value of 0. Therefore, all blended pixels have red, gr

helpx.adobe.com

Difference
Looks at the color information in each channel and subtracts either the blend color from the base color or the base color from the blend color, depending on which has the greater brightness value. Blending with white inverts the base color values; blending with black produces no change.

 

๊ณต์‹ ๋ฌธ์„œ ์„ค๋ช…์„ ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค. ๋งค์ง ์•„์ด ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€๋กœ 5ํ”ฝ์…€์”ฉ ๋ฐ€์–ด ๊ฒน์นœ๋‹ค. ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์€ ํ”ฝ์…€ ์ฐจ์ด์˜ ์ ˆ๋Œ“๊ฐ’์ด๋‹ค. ์•„๋ž˜์—๋Š” ๊ทธ ๊ฒฐ๊ณผ์ธ๋ฐ,  ์ƒ๊ฐ๋‚˜๋Š” ๋Œ€๋กœ ์ง๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ผ ๊ฒฐ๊ณผ๋ฌผ์ด ๋šœ๋ ทํ•˜์ง€๋„ ์•Š๊ณ , ํšจ์œจ์ ์ด์ง€๋„ ์•Š๊ณ , ์‚ฌ์‹ค ์ด๊ฒŒ ๋งž๋Š” ๊ฑด์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์กฐ๊ธˆ ๋” ์ฐพ์•„๋ณด๋ฉฐ ๋งค์ง์•„์ด ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œ ํ•˜๋ฉด ๋งค์ง์•„์ด ์˜์ƒ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๋งŒ๋“ค์–ด๋ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. 

import numpy as np
import cv2

MOVING_SIZE = 5

# 01. ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.
left_img = cv2.imread("img1.png", 1)
right_img = cv2.imread("img1.png", 1)
height, width, _ = left_img.shape

# 02. ์ด๋ฏธ์ง€๋ฅผ 5ํ”ฝ์…€ ๋‹จ์œ„๋กœ ๊ฒน์ณ๋ณด์ž.
result_img = np.zeros((height, width * 2, 3), dtype=np.uint8)
for d in range(width-1, 0, -MOVING_SIZE):
    for y in range(height):
        # ์™ผ์ชฝ ๋ถ€๋ถ„
        for x in range(0, width - d):
            result_img[y][x] = left_img[y][x]
        # ๊ฒน์นœ ๋ถ€๋ถ„
        for x in range(width - d, width):
            result_img[y][x] = abs(left_img[y][x] - right_img[y][x - width + d])
        # ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„
        for x in range(width, width + width - d):
            result_img[y][x] = right_img[y][x - width + d]
        # ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„(๊ฒ€์ •)
        for x in range(width + width - d, width + width):
            result_img[y][x] = 0

    # 03. ๋งค ์ด๋ฏธ์ง€๋ฅผ ํŒŒ์ผ๋กœ ๊ธฐ๋กํ•œ๋‹ค.
    # cv2.imwrite(f"page{d}.png", result_img)\

๊ฑฐ์˜ ๋‹ค ๊ฒน์ณ์งˆ ๋•Œ ์ฏค ์–ด๋ ดํ’‹์ด ํ•˜ํŠธ๊ฐ€ ๋ณด์ธ๋‹ค. ๊ฐ€์žฅ ์„ ๋ช…ํ•œ ๊ณณ์— ์ดˆ์ ์„ ๋งž์ถ”๋Š” ๊ฒƒ์ด ๋งค์ง์•„์ด์˜ ํ•ต์‹ฌ์ด๋‹ค!