C# Image Sonification
Last Updated: Feb 24 2019 13:06, Started by
Vladinskaya
, Feb 22 2019 19:16
·
0
#1
Posted 22 February 2019 - 19:16
Salutări!
Aș dori să aflu de la voi ceva idei cu privire la asocierea și redarea unui sunet pentru o imagine. Precizez că nu am mai lucrat cu așa ceva, nu am o experiență deosebită în ale programării, dar mi s-a părut interesant subiectul și al vrea să fac ceva practic cu asta. Până în prezent am dat peste emgucv (care a preluat practic bibliotecile open cv din C++) și / sau AForge ori alte Nugget-uri pentru prelucrarea imaginilor sau ar putea fi de folos chiar minimul de funcționalități pe care le oferă implicit C#-ul în direcția asta. Mă interesează care ar fi o abordare optimă pentru a crea un sunet aferent unui grup de pixeli. Din câte am citit, există mai multe unghiuri: unii preiau pixelii pe linii și fac o medie a intensității lor și aceea este valoarea care e promovată spre sunet, alții crează regiuni de pixeli pentru asta ș.a.m.d. Mă interesează în deosebi cum ajung să generez sunetul respectiv. Mă gândeam să preiau valorile RGB ale fiecărui pixel în timp ce iterez prin imagine și să îmi populez un vector de bytes. Asta pentru că, din câte știu, SoundPlayer-ul implicit C# poate interpreta efectiv date sub formă de bytes. Dar nu îmi pare soluția optimă, nu știu, mai sunt și alte moduri de redare. Dacă ați mai lucrat cu așa ceva sau dacă știți ceva lib-uri folositoare ori dacă înțelegeți într-un mod diferit problema, nu ezitați să postați sau să întrebați. Orice idee, orice sugestie e binevenită! Mulțumesc! |
#2
Posted 22 February 2019 - 22:09
#3
Posted 23 February 2019 - 20:50
Scopul urmărit e fix cel expus. Să redau sonor informația stocată într-o imagine.
Semnificația imaginii nu are absolut nicio relevanță. Reușesc să fac mare parte din cele amintite în primul post, însă pentru a genera un fișier audio (wav spre exemplu) trebuie să cunosc conținutul header-ului unui wav, little endian / big endian, unde anume vine pusă informația mea relevantă, cum o prelucrez, asta e mai greu. Mă gândeam că poate există și alte abordări. |
#4
Posted 23 February 2019 - 21:01
Va rezulta o prostie cam indiferent ce metoda alegi. Poti incerca chiar interpretarea bitilor fisierului (comprimat) ca sunet (alegi tu o frecventa).
|
#5
Posted 23 February 2019 - 21:13
Nu cred că se aștepta cineva să iasă vreo compoziție clasică din acei biți, evident.
E vorba doar de principiu aici. Dacă interpretez fișierul comprimat pur și simplu, nu ar mai avea nicio relevanță faptul că manipulez o imagine, totuși. Mulțumesc! |
#6
Posted 23 February 2019 - 21:55
De de ai face asa ceva? O sa iasa de fapt zgomot, adica un sunet neplacut pe care ai vrea sa nu-l auzi...
|
#7
Posted 23 February 2019 - 22:21
Dezvolt elemente de steganografie și vreau să înregistrez un mesaj audio, să-l transpun într-o imagine și bineînțeles, pentru decriptare, procesul invers, prezent în descrierea topicului.
Cu alți algoritmi în spate care mai shift-ează pozițiile biților pe-acolo și alte asemenea. Teoretic, ar trebui ca la final să pot pasa mesaje cu conținut sensibil prin poze și cei ce au cheia (numărul de shift-ări, operații pe biți ș.a.m.d.) să poată să "audă" imaginea. Îmi amintesc că prin facultate am făcut un proiect cu ascunderea unui text într-o imagine, chestii clasice de steganografie, iar acum voiam să preiau acel concept și să-l extrapolez într-o altă direcție. Sigur, conceptele astea precum "image sonification" sau "audio programming" nu sunt dintre cele mai accesibile sau dezbătute... |
#8
Posted 23 February 2019 - 22:51
vlad29marko, on 23 februarie 2019 - 22:21, said:
Dezvolt elemente de steganografie și vreau să înregistrez un mesaj audio, să-l transpun într-o imagine și bineînțeles, pentru decriptare, procesul invers, prezent în descrierea topicului. chestia asta n-ar absolut nimic de-a face cu "Image Sonification" la modul general poti ascunde orice informatie intr-o imagine. n-ai nevoie de informatii privind formatul, te intereseaza strict bitii. principala problema e legata de cantitatea de informatie: sunetul ocupa o gramada de spatiu, asa ca intr-o imagine nu poti ascunde prea mult sunet (mai ales daca incerci sa nu deteriorezi prea mult imaginea) |
#9
Posted 24 February 2019 - 10:37
Da, poate că în procesul de sonificare nu ar trebui să intervină elemente verbale, dar în rest, procesul de a translata o imagine într-un grup de sunete e fix asta.
Nu am definiția academică la mine acum, dar asta e ideea. Exemple sunt. Imaginea rezultantă nu e nevoie să aibă vreun "sens", iar informația ascunsă este o parolă, deci un singur cuvânt. Mă interesa partea de implementare efectivă, dacă știți vreun tool, vreo bibliotecă, vreun .dll care să ajute în acest sens, să ne legăm de un termen și să-l criticăm, fără să explicăm sau să aducem în vedere realitatea prezentă, nu e chiar atât de util, no offence. Ok, nu e "image sonification" ceea ce mi-am propus să fac, nicio problemă. Nu asta e ideea. |
#10
Posted 24 February 2019 - 12:33
Te intereseaza prea mult partea de tools/biblioteci insa inca nu e clar ce anume vrei sa faci.
O imagine, formata dintr-un grup de pixeli, poti s-o interpretezi ca un array de bytes. Drept urmare nu te opresti nimeni sa stochezi orice in acei bytes. Daca poti stoca orice, poti stoca si un fisier .wav cu totul (headerul oricum e mic fata de restul datelor) si nu-ti mai pasa de dat play datelor de sunet direct. //daca ai imagine cu 3 canale, 8 bpp //intr-o bucla: citesti cate 3 bytes din fisier, compui o culoare 24bits din ei si o scrii intr-un pixel //salvezi intr-un format lossless Va rezulta o imagine valida din care nu se intelege nimic. Cineva antrenat isi da imediat seama ca poate e ceva ascuns in ea. Ramane varianta cu intercalarea unor date intr-o imagine existenta, astfel incat ce rezulta sa semene inca cu imaginea originala. Asta te limiteaza la cantitatea de informatie ce-o poti ascunde raportata la dimensiunea totala a imaginii. Nicicare din metode nu e insa sigura in ce priveste recuperarea informatiei ascunse. Si nici shiftarea bitilor mai la stanga sau mai la dreapta. Pentru asta exista algoritmi specifici de criptare (de exemplu folosind o cheie comuna). Astia se aplica tot pe biti, nu le pasa ca e vorba de informatii vizuale sau sonore. |
|
#11
Posted 24 February 2019 - 13:06
vlad29marko, on 24 februarie 2019 - 10:37, said:
Mă interesa partea de implementare efectivă, dacă știți vreun tool, vreo bibliotecă, vreun .dll care să ajute în acest sens Edited by neagu_laurentiu, 24 February 2019 - 13:09. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users