명령 줄의 이미지에 보이지 않는 워터 마크를 추가하려면 어떻게해야합니까?


12

여기에 비슷한 질문이지만 Tex 문서에 대한 것입니다. 있는 Imagemagick 쇼 워터 마킹의 방법으로 여기에 가능한 한 보이지 않는로 작업을 수행하는 방법에 있지만은. 나는 현재 이미지 자체를 왜곡시키지 않고 일부 기능적 요소를 사진으로 난독 화하기 때문에 제거하기가 매우 어렵습니다. 이미지에 보이지 않는 워터 마크를 추가하는 명령 줄 도구가 있습니까? 현미경으로 확인해야하지만 여전히 읽을 수 있습니까? 거대한 이미지 트리가 있습니다 (매우 다양한 종류의 워터 마크가 env 등을 채택해야 함). 모든 사진에 워터 마크를 빠르게 보이지 않게하는 명령 줄 도구가 있습니까?


2
귀하의 투명성 요구 사항이 워터 마킹의 목적과 상충되는 것 같습니다. 워터 마크가 일반 뷰어에게 보이지 않으면 이미지에서 JPEG 변환을 두 번 수행하여 워터 마크를 제거 할 수 있습니다. JPEG는 설계 상 사람들이 놓칠 수없는 세부 사항을 부드럽게하기 때문입니다.
Kyle Jones

@KyleJones : JPEG 형식으로 누가 필요합니까? Imagemagick에는 예제 만 포함되어 있습니다. 저의 목표는 워터 마크를 Tex에서 점을 변경하는 것과 같이 조금 숨겨서 그림에 난독 처리하는 것입니다.

2
필자의 요점은 JPEG 변환 또는 기타 손실이 많은 이미지 압축 알고리즘이 이러한 워터 마크를 제거 할 수 있다는 것입니다. 이미지가 반드시 JPEG로 시작되지는 않았습니다.
Kyle Jones

이것이 목적이 없다는 의견은 잘못되고 잘못된 것입니다. 물론, "보이지 않는 워터 마크"는 옥시 모론 (oxymoron)이지만, 애매한 "스테 가노 그래피 (steganographic) 메시지"를 나타내는 유용한 속기입니다. 거의 항상 "형판"(즉, 문자 그대로)으로 자동 수정됩니다. 사용 사례에 대한 배경 지식은 다음과 같습니다. lia.deis.unibo.it/Courses/RetiDiCalcolatori/Progetti98/Fortini/… 및 구현 예 : howtoforge.com/tutorial/…
michael

답변:


9

나는 당신이 찾고있는 것이 스테 가 노 그라피 라고 생각 합니다.

이 리눅스에서이 거기에서 도구의 풍부한 것 같다,하지만하지 않는 선수 친 1steghide 2는 당신이 원하는 것을 할 것입니다. openstego 는 또 다른 하나입니다 (명령 줄 인터페이스 포함).

예를 들어 outguess, 귀하의 질문 텍스트를 복사하여 붙여 넣었습니다 Q.txt.

$ ../src/outguess/outguess -k 'Unix&Linux' -d Q.txt Tux.jpg Tux_steg.jpg
Reading Tux.jpg....
JPEG compression quality set to 75
Extracting usable bits:   10126 bits
Correctable message size: 5008 bits, 49.46%
Encoded 'Q.txt': 4592 bits, 574 bytes
Finding best embedding...
    0:  2274(49.2%)[49.5%], bias  2008(0.88), saved:     2, total: 22.46%
    3:  2269(49.1%)[49.4%], bias  2007(0.88), saved:     3, total: 22.41%
   13:  2268(49.0%)[49.4%], bias  1977(0.87), saved:     3, total: 22.40%
   62:  2237(48.4%)[48.7%], bias  1992(0.89), saved:     7, total: 22.09%
   78:  2216(47.9%)[48.3%], bias  1964(0.89), saved:    10, total: 21.88%
78, 4180: Embedding data: 4592 in 10126
Bits embedded: 4624, changed: 2216(47.9%)[48.3%], bias: 1964, tot: 10119, skip: 5495
Foiling statistics: corrections: 1437, failed: 746, offset: 198.494881 +- 300.529142
Total bits changed: 4180 (change 2216 + bias 1964)
Storing bitmap into data...
Writing Tux_steg.jpg....
$ ../src/outguess/outguess -k 'Unix&Linux' -r Tux_steg.jpg out.txt
Reading Tux_steg.jpg....
Extracting usable bits:   10126 bits
Steg retrieve: seed: 78, len: 574
$ diff out.txt Q.txt 
$ echo $?
0

소스 이미지 ( Tux.svg에서 ) :

일반 JPG, 워터 마크 없음

질문이 숨겨져있는 이미지 :

숨겨진 정보가 포함 된 파일

자세히 보면 이미지가 다르지만 두 번째 이미지가 JPEG 압축 수준이 더 높은 것으로 생성 된 것과 거의 같습니다. 질문의 전체 텍스트가 혼합되어 있고 암호로 보호되어 있다는 사실은 시각적으로 눈에 띄지 않습니다.
숨겨진 메시지가 작을수록 이미지의 시각적 차이가 줄어 듭니다. (저는 "Copyright YOU 2012"가 포함 된 원본과 파일을 시각적으로 구분할 수 없습니다.)

1 오래된,하지만 잘 빌드합니다.
2 는 최신 C ++ 컴파일러로 빌드되지 않으므로 몇 가지 소스 수정이 필요합니다.


OpenStego에는 CLI가 있으며 답변을 편집하고 링크했습니다.
awendt

0

이미지에 상당히 안정적인 워터 마크를 포함시킬 수있는 방법이 있어야합니다. DigiMark는 Photoshop 필터와 같은 방식으로 명령 줄 도구를 사용하여 수행 할 수없는 이유는 무엇입니까?

이것은 해결책이 아니지만 어떻게 작동하는지에 대한 아이디어입니다 ... 빈 흰색 이미지에 보이지 않는 워터 마크를 만들고 결과 코드를 다른 이미지에 혼합하면 워터 마크 리더는 결과 이미지에서 워터 마크를 추출 할 수 있습니다 다시 – 수정 / 자르거나 인쇄하고 다시 촬영할 때에도 마찬가지입니다.

따라서 실제로 주어진 워터 마크 그라디언트 코드를 일괄 추가하면 문제가되지 않습니다. 워터 마크를 추출 할 적절한 서명 알고리즘과 소프트웨어를 찾는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.