칼라영상 워터마킹

bjgangs의 이미지

현재 인터넷에서 구할수 있는 워터마킹 예제 소스는 모두 gray영상을 기반으로 하고 있는 듯합니다.

혹시 칼라영상에 칼라영상을 워터마킹 해보신분 계신가요?

어떤 방식으로 접근해야 하는지 조언을 구하고 싶습니다.

seoleda의 이미지

예전에 RGB를 YVU로 변환 후, Y에다가 워터마크를 삽입해 봤습니다.

구글에서 color watermarking로 검색해보니 논문이 많이 나오네요.

흑백이냐 컬러냐 하는 부분은 한 픽셀당 정보량이 얼마냐 하는 차이뿐 아닌가요?

사람의 눈이 어떠한 색이나 주파수에 민감한가, 워터마크를 하려는 목적이 무엇인가?

에 따라서 잘 생각해보면 새로운 방법을 찾을 수도 있을 것 같습니다.

bjgangs의 이미지

YUV로 변환한후 Y에다가 워터마크를 삽입했다는 것은

워터마킹할 칼라이미지를 RGB나 다른 여러가지 변환을 하지않고 파일 자체를

Y에다가 삽입했다는 말씀이신가요?

mg2000의 이미지

YUV로 변환해서 Y에 넣고 다시 RGB로 변환해도 되고...

R, G, B 각각에 워터마크를 넣어도 되고요.

bjgangs의 이미지

말씀하신데로 Y영역에 워터마크 파일을 복사해서 넣었더니

원본영상에 약간의 손실이 있는거 같지만 확인하기 힘들정도로 삽입되었습니다.

문제는 그 워터마크된 영상을 다시 YUV변환해서 Y영역에 있는 데이터를 다시 읽어와서 출력했을때

원래 워터마크 파일의 영상이 안만들어 지는데요

뭐가 잘못된거죠?

seoleda의 이미지

(x+w) 에서 w 를 추출하는 방법은 여러가지가 있습니다.

삽입할 워터마크를 w, 워터마크를 삽입한 그림에서 특정한 처리 (YUV변환후 Y 추출, DCT, FFT 등)

를 수행한 원본을 x라 고 해봅시다.

그럼 워터마크를 삽입한 형태는 w에 x를 더한 w+x 가 됩니다.

(w+x) 를 x 자리에 치환하여, 특정한 처리의 반대로 해주면 워터마크가 삽입된 그림을 얻을 수 있습니다.

이제, 워터마크를 추출하기 위해 동일한 처리를 수행하면 w+x를 얻을 수 있으나, (w+x) 와 x는 분명히 다릅니다.

일반적으로 (w+x)와 x의 상관도를 분석하는데, 이것이 w를 얼마나 크게 했느냐? x가 어떠한가에 따라서 그때그때 다릅니다.

따라서, (w+x)에서 x를 잘 추출하기 위한 여러가지 방법이 있는데, 이 부분은 수많은 논문을 참조하세요.

간략하게 말씀드리면, w를 x에 상관없는 신호로 만드는 방법, (w+x)에서 x를 추정하는 방법 등이 있습니다.

bjgangs의 이미지

답변 감사합니다^^

한가지 더 질문이 있어서 글 올립니다.

워터마킹 삽입과정에서 Y영역에 워터마크 영상정보를 더한것이 아니라 그냥 덮어쓰기 하였습니다.

덮어쓰기 하고나서 다시 YUV에서 RGB로 변환하고, 확인하기 위해서 바로 이어서 YUV로 다시 변환해서

Y영역을 파일로 써보니깐 덮어썼던 정보는 없어지고 원래의 Y정보 일부분이 들어있었습니다.

왜 이런지 혹시 아시나요?

brucewang의 이미지

한 10년 전에 워터마킹이란게 뭔지도 모르고 아래 프로그램을 만들었었습니다.
아이디어를 갖고 실제 개발 기간 거의 하루만에 뚝딱 만들고는 손도 안대놓고
올려 놓은거라 버그가 무척 많아요.
http://sourceforge.net/projects/secretpicture/

잘 아시겠지만, seoleda 님 말씀대로 RGB를 YUV로변환하면 Y영역은
인간의 눈으로 그 값의 차이를 잘 파악할 수 없으니까 거기에 데이터를
추가하면, 인간의 눈으로는 거기에 어떤 정보가 있는지 알 수 가 없지요.

결국, 어떤 정보이든 그 각 bit를 워터마킹하려는 대상 이미지 각 픽셀의 Y영역에 넣으면
저의 프로그램처럼 그림 안에다가 텍스트 메시지를 넣을 수 도 있게 되는거죠.

나중에 알고보니 워터마킹에 대한 많은 논문이 있더군요.
워터마킹된 이미지를 resize하는 경우에도 최소한의 손실로
삽입된 정보를 복구하기 위한 처리 등, 보다 깊은 수준의 논문들이
있는것 같습니다.

-------------------------------------------------
$yes 4 8 15 16 23 42

-------------------------------------------------
$yes 4 8 15 16 23 42

brucewang의 이미지

-------------------------------------------------
$yes 4 8 15 16 23 42

-------------------------------------------------
$yes 4 8 15 16 23 42

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.