WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mein Bild in Bild problem (versteckt im 2 Byte)

 

Andreas233

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 11:31     Titel: Mein Bild in Bild problem (versteckt im 2 Byte)
  Antworten mit Zitat      
Ich habe hier ein Bild Versteckt.png welches ein anderes Bild enthält.

Die Aufgabenstelleung:

Bei dem Bild Aufgabe1.png handelt es sich um eine Bilddatei im Format uint16 (16 Bit, also 2 Byte), die ein Bild sowohl in Echtfarbe und als auch in Komplementärfarbendarstellung anzeigt. Dabei ist allerdings das untere Byte zur Übertragung zweier nichtsichtbarer Bilder genutzt.

Extrahieren Sie die beiden nichtsichtbaren Bilder und berücksichtigen Sie, dass ein Bild davon gedreht und in Komplementärfarben dargestellt ist.
Stellen Sie alle Bilder korrekt und einzeln dar!



Zur Anlage meine Versuche das Bild zu extrahieren.
Es soll sich hier um Steganographie handeln ich komm aber nicht weiter als das Bild Schimmernd anzeigen zu lassen wo liegt hier mein Fehler?

Ich hab das Gefühl es sollte eigentlich viel einfacher sein als ich es mir denke

Versteckt.png
 Beschreibung:

Download
 Dateiname:  Versteckt.png
 Dateigröße:  2.23 MB
 Heruntergeladen:  857 mal
soungefaer.jpg
 Beschreibung:

Download
 Dateiname:  soungefaer.jpg
 Dateigröße:  117.52 KB
 Heruntergeladen:  829 mal


Andreas233

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 11:33     Titel: zusatz
  Antworten mit Zitat      
Ich habe lediglich mit ein paar Matrix befehlen rum gespielt,

und zum schluss "rgb2gray" ausprobiert.
 
HauNei
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 12:49     Titel:
  Antworten mit Zitat      
Hallo,
so wie ich die Frage verstehe, benötigst du ja die unteren 8Bit für das neue Bild. Dazu musst du erst einmal, deine 16Bit in 2 * 8bit zerlegen und dann nur den unteren wert nehmen.
Nach etwas googlen, kommt man dann auch darauf wie das geht.
Dies musst du für deine ganze Bildmatrix machen. Da du aber für ein Bild Uint 16 benötigst, musst du sie eben umwandeln.
Dabei musst du aber draufachten, dass sich dein Werte bereich von [0 255] auf[0 65535] verändert. Wenn du jetzt das Bild darstellst, sollte etwas ertes brauchbares rauskommen.
Falls Fehler auftreten oder etwas unklar ist melde dich, dann kann ich dir evtl helfen. (habe selber probieren müssen bis es klappt)
Viele Grüße
HauNei
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas233
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 13:15     Titel: Danke
  Antworten mit Zitat      
Danke schonmal ich weiß nicht genau was du mit,

unteren Wert nehmen, meinst aber ich kämpf mich durch und sag dir dann bescheid Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
HauNei
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 13:34     Titel:
  Antworten mit Zitat      
Mit unterem Wert meine ich folgendes,
eine 16Uint zahl kann ja einen Dezimalwert von 0bis 65535 annehmen,
wandle ich diese Deziamlzahl in eine Binärzahl um bekomme ich ja eine Zahlenfolge mit Nullen und Einsen
z.B. Dezimal 15148 ergibt Binär 0011 1011 0010 1100,
jetzt kannst du diese Zahl auch als 2 8Bit darstellen :
b1 = 0011 1011
b0 = 0010 1100
b0 ist dabei der untere Wert und b1 der obere Wert,
diesen unteren Wert mit dem musst du weiter rechnen.
Falls du nocheinmal hilfe brauchst, denke ich kann dir weiterhelfen.
Gruß
HauNei
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas233
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 15:45     Titel:
  Antworten mit Zitat      
Das hab ich verstanden und soweit auch umgesetzt bekommen,
nur wie bekomm ich aus dem unteren Wert jetzt wieder eine Matrix
die mir das versteckte Bild anzeigt?


Code:
%hidden Picture Problem

clear

close all;

clc



oBild = imread('Aufgabe1.png');

uZahl = length(oBild);

duZahl= dec2bin(uZahl);

duZahl

LSB = 00100110;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 05.09.2013, 16:22     Titel:
  Antworten mit Zitat      
Zitat:
Das hab ich verstanden und soweit auch umgesetzt bekommen,

ich glaube nicht ^^
du hast die dimension des bildes umgewandelt. nicht den inhalt ^^ du hast versucht aus der information das das bild 1062 pixel breit ist ein bild zu machen was zwar geht aber nicht sinnvoll ist Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas233
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 16:55     Titel: ja, das macht sinn
  Antworten mit Zitat      
Ich sitz jetzt seit einem Tag an diesem Problem und hab glaub ich alle Befehle mal durchprobiert,

von bitget(Bild, 1)

usw usw ich hab das einfach nicht verstanden
ich hab soviele verschiedene wege über uint8(Bild) und dann damit arbeiten usw das ich jetzt eig nicht wirklich weiß wo dieses 2. Byte dieses LSB Byte eig wirklich drin steht ... ich hab das internet nach diesen Fragewörtern durchsucht und das sagt mir das das LSB eig nur ein einziges Bit ist statt ein ganzes Byte hinter dem sich ein Bild verstecken soll.

Ich werd bald wahnsinnig so doof kann ich doch nicht sein.

Und diese Übungsaufgabe sollte man doch schon hin bekommen

Danke euch dennoch für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 05.09.2013, 16:57     Titel:
  Antworten mit Zitat      
Code:
A=imread('versteckt_453.png');
B2=dec2bin(A(:,1:1062/2,:),16);
B2=B2(:,9:end);
B2=bin2dec(B2);
B2=reshape(B2,size(A(:,1:1062/2,:)));
imshow(B2)

so hab ich die aufgabe verstanden.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas233
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2013, 19:54     Titel: Danke schonmal
  Antworten mit Zitat      
Es sieht jetzt so aus, die Farben sind aber verschwunden Smile

Danke an Winkow und HauNei


Code:

A   =   imread('Aufgabe1.png');


B2  =   dec2bin(A(:,1:1062/2,:),16);


B3  =   B2(:,9:end);


B4  =   bin2dec(B3);


B5  =   reshape(B4,size(A(:,1:1062/2,:)));



        imshow(B5)


 


loesung1.png
 Beschreibung:

Download
 Dateiname:  loesung1.png
 Dateigröße:  81.9 KB
 Heruntergeladen:  716 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
HauNei
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 55
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2013, 07:12     Titel:
  Antworten mit Zitat      
Hallo;
ich habs etwas anderst gelöst wie Winkow,
und vermutlich wie immer viel zu kompliziert Wink
Aber hier jetzt der Code das du dein erstes Bild hingrigst
Code:
A=imread('versteckt_453.png');
B2=dec2bin(A(:,1:1062/2,:),16);
B2=B2(:,9:end);
B2=bin2dec(B2);
B2=reshape(B2,size(A(:,1:1062/2,:)));
B2 = uint8(B2);
imshow(B2);

kommt ein für mich sinnvolles Bild raus, da ich meine double werte in uint8 umwandeln muss
Den zweiten Bildausschnitt kannst du genauso berechnen, hier musst du eben nur von den Komplemenrätfarben (CMY) in RGB-Wechseln (hoffe du weißt wie das geht) und das bild dann Drehen wenn ichs richtig versteh
Viele Grüße

test6.png
 Beschreibung:

Download
 Dateiname:  test6.png
 Dateigröße:  553.81 KB
 Heruntergeladen:  722 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.