๊ด€๋ฆฌ ๋ฉ”๋‰ด

Unfazedโ—๏ธ๐ŸŽฏ

์˜์ƒ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ( + xor ์—ฐ์‚ฐ ) ๋ณธ๋ฌธ

OpenCV

์˜์ƒ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ( + xor ์—ฐ์‚ฐ )

9taetae9 2023. 10. 16. 20:50
728x90

์˜์ƒ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ

์˜์ƒ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์€ ๊ฐ ํ”ฝ์…€ ๊ฐ’์— ๋Œ€ํ•˜์—ฌ ๋น„ํŠธ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

๊ทธ๋ ˆ์ด ์Šค์ผ€์ผ ์˜์ƒ์˜ ๊ฒฝ์šฐ, ํ•œ ํ”ฝ์…€(1byte=8bit)์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿ๊ฐœ์˜ ๋น„ํŠธ์— ๊ฐ๊ฐ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ๊ฐœ์˜ ์ž…๋ ฅ ์˜์ƒ์—์„œ ํŠน์ • ์ขŒํ‘œ์— ์žˆ๋Š” ํ”ฝ์…€์˜ ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ๊ฐ’์ด(0~255) ๊ฐ๊ฐ 110๊ณผ 200์ธ ๊ฒฝ์šฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ์—ฐ์‚ฐ๋œ๋‹ค.                                  

  110 = 01101110(2)
  200 = 11001000(2)
110 AND 200           01001000(2)=72
110 OR 200           11101110(2)=238
110 XOR 200           10100110(2)=166
NOT 110           10010001(2)=145

OpenCV์—์„œ๋Š” AND,OR,XOR,NOT ์˜ ๋…ผ๋ฆฌ์—ฐ์‚ฐ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

cv2.bitwise_and(src1,src2)

cv2.bitwise_or(src1,src2)

cv2.bitwise_xor(src1,src2)

cv2.bitwise_not(src1)  //not์€ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ํ•˜๋‚˜๋ฟ์ธ ๋‹จํ•ญ์—ฐ์‚ฐ์ž์ด๋ฏ€๋กœ ํ•˜๋‚˜์˜ ์˜์ƒ๋งŒ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

ํฐ์ƒ‰์˜ ํ”ฝ์…€๊ฐ’์€ 255๋กœ ๋ชจ๋“  ๋น„ํŠธ๊ฐ€ 1๋กœ ์„ค์ •๋œ 11111111(2),

๊ฒ€์ •์ƒ‰์˜ ํ”ฝ์…€๊ฐ’์€ 0์œผ๋กœ ๋ชจ๋“  ๋น„ํŠธ๊ฐ€ 0์œผ๋กœ ์„ค์ •๋˜์–ด 00000000(2)์ด๋‹ค.

 

ํฐ์ƒ‰์˜ ํ”ฝ์…€(11111111(2))์„ ๋‹ค๋ฅธ ์˜์ƒ(new_src๋ผ ๊ฐ€์ •)์˜ ๊ฐ™์€ ์œ„์น˜ ํ”ฝ์…€๊ณผ and ์—ฐ์‚ฐ์„ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ๊ทธ ํ”ฝ์…€ ์œ„์น˜์—๋Š” new_src์˜ ํ”ฝ์…€์ด ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜๋˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ( 1 and 1 => 1, 1 and 0 => 0 ์ด๊ธฐ ๋•Œ๋ฌธ ) 

or ์—ฐ์‚ฐ์„ ํ•˜๋‹ค๋ฉด ์ „์ฒด ์˜์ƒ์ด ํฐ์ƒ‰์ด ๋  ๊ฒƒ์ด๋‹ค. (1 or 1 => 1, 1 or 0 => 1)

xor ์—ฐ์‚ฐ์„ ํ•œ๋‹ค๋ฉด new_src์˜ ๊ฐํ”ฝ์…€์˜ ๋น„ํŠธ๋“ค์ด ๋ชจ๋‘ ๋ฐ˜์ „๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค (1 xor 1 => 0, 1xor 0 => 1)

not ์—ฐ์‚ฐ์€ ํ•ด๋‹น์˜์ƒ์˜ ๊ฐ ํ”ฝ์…€ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๋ฐ˜์ „์‹œํ‚จ๋‹ค.

 

 

๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ

XOR exclusive or : ์ฃผ์–ด์ง„ 2๊ฐœ์˜ ๋ช…์ œ ๊ฐ€์šด๋ฐ 1๊ฐœ๋งŒ ์ฐธ์ผ ๊ฒฝ์šฐ ํŒ๋‹จํ•˜๋Š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ด๋ฉฐ

exclusive OR, exclusive NOR, ๋ณดํ†ต exclusive์˜ x๋ฅผ ๋”ฐ์™€์„œ XOR๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

exclusive๋Š” '๋ฐฐํƒ€์ '์ด๋ผ๋Š” ๋œป์œผ๋กœ, ์šฐ๋ฆฌ๋“ค์€ ์ผ์ƒ์†์—์„œ ๋‚จ์„ ๋ฐฐ์ฒ™ํ•˜๋Š” ๊ฒƒ์„ ๋ณดํ†ต ๋ฐฐํƒ€์ ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค.

์ด๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด 0 ๊ณผ 1 ๊ฐ™์ด ๋น„ํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅผ ๊ฒฝ์šฐ(์ฆ‰, ๋ฐฐํƒ€์ ์ผ ๊ฒฝ์šฐ) ์— 1(์ฐธ), 0 xor 0, 1 xor 1๊ณผ ๊ฐ™์ด ์„œ๋กœ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐํƒ€์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 0(๊ฑฐ์ง“)์ด ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋œ๋‹ค.

๊ฐ„๋‹จํžˆ ์ƒ๊ฐํ•˜๋ฉด ๊ฐ™์œผ๋ฉด 0, ๋‹ค๋ฅผ ๋• 1

exclusive, ๋ฐฐํƒ€์ ์ด๋ผ๋Š” ๋œป์„ ๋– ์˜ฌ๋ ค๋ณด๋ฉด ํ–‡๊ฐˆ๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™๋‹ค.

728x90