Làm cách nào để thêm hình mờ vô hình vào hình ảnh trên dòng lệnh?


12

Câu hỏi tương tự ở đây nhưng đối với Tex -document. Imagemagick chỉ ra những cách làm hình mờ ở đây nhưng không phải cách làm nó vô hình nhất có thể. Tôi hiện chỉ làm xáo trộn một số yếu tố chức năng vào ảnh nên cực kỳ khó xóa, mà không làm biến dạng hình ảnh. Có một số công cụ dòng lệnh để thêm hình mờ vô hình vào hình ảnh, có thể muốn kiểm tra bằng kính hiển vi nhưng vẫn có thể đọc được? Tôi có một cây hình ảnh đồ sộ (rất đa dạng nên hình mờ nên áp dụng cho env, v.v.) - một số công cụ dòng lệnh để thêm hình mờ nhanh vô hình trên mỗi bức ảnh?


2
Tôi nghĩ rằng yêu cầu tàng hình của bạn là mâu thuẫn với mục đích thủy ấn. Nếu hình mờ không thể nhìn thấy đối với người xem bình thường thì có lẽ nó có thể bị xóa bằng cách thực hiện một vài chuyển đổi JPEG trên hình ảnh, vì thiết kế JPEG làm mờ các chi tiết mà mọi người sẽ không bỏ lỡ.
Kyle Jones

@KyleJones: ai yêu cầu JPEG là định dạng? Imagemagick chỉ chứa các ví dụ, mục tiêu của tôi là làm mờ các hình mờ thành hình ảnh bằng cách ẩn chúng một chút giống như thay đổi một dấu chấm trong Tex.

2
Quan điểm của tôi là chuyển đổi JPEG hoặc bất kỳ thuật toán nén hình ảnh bị mất nào khác sẽ có thể loại bỏ một hình mờ như vậy, không phải hình ảnh nhất thiết phải bắt đầu như một JPEG.
Kyle Jones

Nhận xét rằng điều này không có mục đích là sai và sai. Chắc chắn, "watermark vô hình" là một oxymoron, nhưng nó là một tốc ký hữu ích cho "thông điệp steganographic" tóm tắt - mà hầu như sẽ luôn được tự động chuyển thành "stenographic" (nghĩa là, tốc ký). Dưới đây là một backgrounder về các trường hợp sử dụng: lia.deis.unibo.it/Courses/RetiDiCalcolatori/Progetti98/Fortini/... và một ví dụ thực hiện: howtoforge.com/tutorial/...
michael

Câu trả lời:


9

Tôi tin rằng những gì bạn đang tìm kiếm là steganography , một cách để ẩn một thông điệp trong nội dung trông ngây thơ.

Dường như không có nhiều công cụ cho việc này trên Linux, nhưng việc bỏ qua 1steg leather 2 sẽ làm những gì bạn muốn. openstego là một cái khác (với giao diện dòng lệnh).

Ví dụ với outguess, tôi sao chép / dán văn bản câu hỏi của bạn vào 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

Nguồn hình ảnh (từ Tux.svg ):

JPG đơn giản, không có hình mờ

Hình ảnh với câu hỏi của bạn ẩn bên trong nó:

tập tin với thông tin ẩn

Các hình ảnh sẽ khác nhau nếu bạn nhìn kỹ, nhưng nó khá giống như thể thứ hai đã được tạo ra với mức độ nén JPEG cao hơn. Thực tế là toàn bộ văn bản câu hỏi của bạn được trộn lẫn (và được bảo vệ bằng mật khẩu) hoàn toàn không đáng chú ý.
Thông điệp ẩn càng nhỏ, hình ảnh sẽ càng ít khác biệt. (Tôi không thể phân biệt trực quan giữa bản gốc và tệp có nhúng "Bản quyền YOU 2012".)

1 cũ, nhưng xây dựng tốt.
2 không xây dựng với trình biên dịch C ++ hiện đại, một vài bản sửa lỗi nguồn là cần thiết.


OpenStego có CLI, tôi đã chỉnh sửa câu trả lời của bạn và liên kết với nó.
awendt

0

Phải có một cách để nhúng một hình mờ khá ổn định vào hình ảnh, DigiMark thực hiện nó, ví dụ như trong các bộ lọc Photoshop - vậy tại sao một công cụ dòng lệnh không thể làm tốt như vậy?

Đây không phải là giải pháp, nhưng ý tưởng về cách nó có thể hoạt động ... nếu bạn tạo một hình mờ vô hình trên một hình ảnh trắng trống và trộn mã kết quả vào bất kỳ hình ảnh nào khác, trình đọc hình mờ có thể trích xuất dấu hiệu từ hình ảnh kết quả một lần nữa - ngay cả khi sửa đổi / cắt hoặc in và chụp ảnh lại.

Vì vậy, thực sự hàng loạt việc thêm một mã độ dốc hình mờ cho trước sẽ không phải là vấn đề - thay vào đó là tìm một thuật toán ký và sotware thích hợp để trích xuất hình mờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.