ฉันจะเพิ่มลายน้ำที่มองไม่เห็นให้กับรูปภาพใน commandline ได้อย่างไร


12

คำถามที่คล้ายกันที่นี่ แต่สำหรับTex -document Imagemagick แสดงวิธีการลายน้ำที่นี่แต่ไม่ใช่วิธีที่จะมองไม่เห็นเท่าที่จะทำได้ ตอนนี้ฉันแค่ทำให้องค์ประกอบการทำงานยุ่งเหยิงลงในภาพถ่ายเพื่อที่จะลบออกได้ยากมากโดยไม่บิดเบือนภาพเอง มีเครื่องมือบรรทัดคำสั่งเพื่อเพิ่มลายน้ำที่มองไม่เห็นให้กับรูปภาพหรือเปล่าบางสิ่งที่ต้องการตรวจสอบด้วยกล้องจุลทรรศน์ แต่ก็ยังสามารถอ่านได้? ฉันมีต้นไม้ภาพจำนวนมาก (มีความหลากหลายแตกต่างกันมากดังนั้นลายน้ำควรใช้กับ env ฯลฯ ) - เครื่องมือ commandline บางอย่างเพื่อเพิ่มลายน้ำอย่างรวดเร็วสุดลูกหูลูกตาในทุกภาพ?


2
ฉันคิดว่าข้อกำหนดการล่องหนของคุณนั้นขัดแย้งกับวัตถุประสงค์ของการใส่ลายน้ำ หากลายน้ำไม่สามารถมองเห็นได้จากมุมมองปกติก็สามารถลบออกได้โดยทำการแปลง JPEG สองภาพบนภาพเนื่องจากการออกแบบ JPEG ทำให้รายละเอียดของภาพราบรื่นขึ้นซึ่งผู้คนจะไม่พลาด
Kyle Jones

@KyleJones: ใครต้องการ JPEG เป็นรูปแบบ? Imagemagick มีเพียงตัวอย่างเท่านั้นเป้าหมายของฉันคือทำให้ลายน้ำลายน้ำเป็นรูปภาพโดยซ่อนไว้เล็กน้อยเช่นเปลี่ยน dot ใน Tex

2
ประเด็นของฉันคือการแปลง JPEG หรืออัลกอริทึมการบีบอัดภาพที่สูญเสียอื่น ๆ จะสามารถลบลายน้ำดังกล่าวได้ไม่ใช่ว่าภาพนั้นจำเป็นต้องเริ่มเป็น JPEG
Kyle Jones

ความคิดเห็นที่ว่านี้ไม่มีวัตถุประสงค์ผิด & เข้าใจผิด แน่นอนว่า "ลายน้ำที่มองไม่เห็น" นั้นเป็น oxymoron แต่เป็นชวเลขที่มีประโยชน์สำหรับข้อความ "steganographic" ที่ลึกซึ้งซึ่งมักจะได้รับการแก้ไขอัตโนมัติเป็น "stenographic" (เช่นตัวอักษรชวเลข) นี่คือแบ็คกราวน์สำหรับกรณีการใช้งาน: lia.deis.unibo.it/Courses/RetiDiCalcolatori/Progetti98/Fortini/และการใช้งานตัวอย่างหนึ่งตัวอย่าง: howtoforge.com/tutorial/ …
michael

คำตอบ:


9

ฉันเชื่อว่าสิ่งที่คุณกำลังมองหาคือซูรินาเมวิธีการซ่อนข้อความในเนื้อหาที่ดูไร้เดียงสา

ดูเหมือนจะไม่ได้มีเครื่องมือมากมายสำหรับการใช้งานบน Linux แต่outguess 1และsteghide 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 - ทำไมเครื่องมือบรรทัดคำสั่งไม่สามารถทำได้เช่นกัน?

นี่ไม่ใช่วิธีแก้ปัญหา แต่เป็นความคิดว่ามันจะทำงานอย่างไร ... ถ้าคุณสร้างลายน้ำที่มองไม่เห็นบนภาพสีขาวที่ว่างเปล่าและผสมผสานรหัสที่ได้เป็นภาพอื่น ๆ เครื่องอ่านลายน้ำสามารถแยก wartermark จากภาพที่ได้ อีกครั้ง - แม้เมื่อแก้ไข / ครอบตัดหรือพิมพ์และถ่ายภาพอีกครั้ง

ดังนั้นจริงๆแล้วการเพิ่มแบทช์รหัสการไล่ระดับลายน้ำที่กำหนดจะไม่เป็นปัญหา แต่เป็นการค้นหาอัลกอริธึมการลงนามที่เหมาะสมและ sotware เพื่อแยกลายน้ำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.