Annons

Inläsning av .Nef-bilder i C#?

Produkter
(logga in för att koppla)

Färne

Medlem
Ska skriva ett program i C# som läser in bilder och vill kunna läsa in Nikons Egna RAW-format .NEF.

Är det någon som vet om det går och isåfall vart man kan ladda hem ett sådant bibliotek?

Varför har Nikon ett eget RAW-format, .NEF? Varför använder de inte TIF och vad är egentligen skillnaderna mellan TIF och NEF?
 
Färne skrev:

Varför har Nikon ett eget RAW-format, .NEF? Varför använder de inte TIF och vad är egentligen skillnaderna mellan TIF och NEF?

Tiff är inget rawformat till skilnad från DNG som Nikon skulle kunna avnänt som komplement eller istället för NEF om viljan fanns.
 
Re: Re: Inläsning av .Nef-bilder i C#?

papi skrev:
...DNG...

Själv har jag Pentax, och jag antar att deras PEF är Pentax egna på samma sätt som NEF...?

DNG är väl ett helt fritt format?
Hur är det med PEF (och NEF) om man kör någon Linux - finns det vettiga konverterare?

Och vet någon om kameratillverkarna kan ställa om formatet mjukvarumässigt? Alltså leverera en programuppdatering till kameran - om dom skulle vilja alltså.
 
Färne skrev:
Ska skriva ett program i C# som läser in bilder och vill kunna läsa in Nikons Egna RAW-format .NEF.

Är det någon som vet om det går och isåfall vart man kan ladda hem ett sådant bibliotek?

Varför har Nikon ett eget RAW-format, .NEF? Varför använder de inte TIF och vad är egentligen skillnaderna mellan TIF och NEF?

Vad vill du göra med bilden? Om du vill läsa metadata, tex GPS-position, som är lagrade i den går det alldeles utmärkt att betrakta NEF som en TIFF. Om det går att läsa själva bilddatat är väl mer tveksamt men det har jag inte testat.

Tyvärr har jag inga tips att ge när det gäller C# eftersom jag bara behandlat .NEF filer mha JAVA
 
tiq skrev:
var det inte nikon som fick för sig att det var en bra idé att kryptera vitbalansinformationen, bara för att göra det jobbigare för de som vill hantera deras råformat?


jag skulle söka på sourceforge.

http://www.cybercom.net/~dcoffin/dcraw/ kanske kan vara nått?


Tackar! ska kolla in denna länk lite mera. men fungerar detta för c# och windows?

Måste säga att jag är förvånad över hur snabbt jag fick svar från folket här. *glad*
 
Re: Re: Inläsning av .Nef-bilder i C#?

thogus skrev:
Vad vill du göra med bilden? Om du vill läsa metadata, tex GPS-position, som är lagrade i den går det alldeles utmärkt att betrakta NEF som en TIFF. Om det går att läsa själva bilddatat är väl mer tveksamt men det har jag inte testat.

Tyvärr har jag inga tips att ge när det gäller C# eftersom jag bara behandlat .NEF filer mha JAVA


Det som är viktigt är att komma åt själva pixelinformationen, för det är den jag kommer att arbeta med.

Vad är det andra mer exakt som man kan få ut? Det är inte nödvändigt men kan ju vara kanske ett pluss att kunna få ut det med.


Alltså behöver komme åt så mycket information som kan användas för att justera bilderna.
 
Senast ändrad:
Här är en länk som var till stor hjälp för mig när jag höll på med NEF/TIFF.
http://www.awaresystems.be/imaging/tiff.html
Vilka av alla fält som är ifyllda varierar naturligtvis beroende på var filen kommer ifrån, alla kameror och program använder inte alla fält.
Tyvärr vet jag inte så mycket om själva bilddatat som sagt eftersom jag var ute efter GPS-information som kameran fotograferna på mitt jobb använder lagrar, för att kunna koordinatsätta bilderna när de sparas i en databas.
 
Varför är Windows så nogranna med att inte avslöja sin källkod?

Ok, jämförelserna haltar lite grand - men ändå. Om Nikon har specialutvecklat ett filformat, och en mjukvara (capture NX) som skall vara som handen i handsken, så är det om man tänker efter, inte så konstigt att de väljer att innehålla information.

Tiff är ett format som tryckarna gillar, men det skiljer ljusår på variationsmöjligheterna i metadatat mellan Tiff och Raw/nef.

Hälsningar

Adam
 
NEF är ju rådata så det går överhuvudtaget inte att "läsa" en sådan fil utan vidare. Det som är lagrat i filen är ju ren sensordata som måste konverteras till en bitmapfil via något algortim innan den kan behandlas. Hur denna algoritm ska utformas är ju en hel vetenskap i sig och det finns inget givet svar på vilket sätt som är bäst, det är ju anledningen till varför olika råkonverterare ger olika resultat.

Bäst är nog att använda någon open-source variant som utgångspunkt för att skriva delen som läser NEF data och omvandlar till bitmap data. Med lite tur så kan du kanske till och med hitta färdiga bibliotek som gör detta som kan länkas in i C# programmet.
 
Tobiasl skrev:
NEF är ju rådata så det går överhuvudtaget inte att "läsa" en sådan fil utan vidare. Det som är lagrat i filen är ju ren sensordata som måste konverteras till en bitmapfil via något algortim innan den kan behandlas. Hur denna algoritm ska utformas är ju en hel vetenskap i sig och det finns inget givet svar på vilket sätt som är bäst, det är ju anledningen till varför olika råkonverterare ger olika resultat.

Bäst är nog att använda någon open-source variant som utgångspunkt för att skriva delen som läser NEF data och omvandlar till bitmap data. Med lite tur så kan du kanske till och med hitta färdiga bibliotek som gör detta som kan länkas in i C# programmet.


Mycket intressant svar.

Men inte borde man tappa information vid konverteringen? Det kan väl inte vara många sätt man kan bygga upp den där filen? Finns väl bara rätt teller fel krypteringsnyckel?

För det jag vill ha när jag arbetar är bilden i matrisform.

Hur mycket tappar man egentlgien på kvaliten vid fine på jpg? Hur hårt kodar den då? Någon som vet? För jpg-läsare brukar det finnas gott om.


Det jag är ute efter är att själv kunan styra så mycket som möjligt och tappa så lite information på vägen. Genom att jag kommer att anvädna mina fotografier för att arbeta HDR-bilder i slutändan.
 
troligen handlar det om att först ha rätt krypterings nyckel om det är så att vitbalansen är kryperad.. resten handlar juh mer om att sensor datan som finns i nef filen ska tolkas genom en algoritm.. beroende på hur algoritmen är bygd kommer Tolkningen att bli annerlunde och således får du lite olika resultat..
 
Visst tappar man information vid konverteringen, När man konverterar från NEF (eller andra rådataformat) till ex. tiff så är det ju en "envägskonvertering" eftersom man räknar fram färgvärdena för varje pixel med hjälp av ren sensordata. Det är i sig inte relaterat till Nikons krypetering utan är helt enkelt hur råformat fungerar; varje "pixel" i bilden räknas ju nominellt fram med hjälp av data från flera olika "pixlar" på sensorn som svarar mot olika våglängdsområden (en röd, en blå samt två gröna pixlar); gissningsvis tas även hänsyn till närliggande pixlar. Det gör att det finns en uppsjö olika sätt att räkna fram värdet på varje pixel i bilden vilket som sagt förklarar varför olika råkonverterare ger olika resultat (dessutom ska ju hänsyn tas till vitbalans etc i framräkningen). NEF är således egenligen inget bildformat, utan data som kan användas för att RÄKNA FRAM en bild.

Kanske det vore enklare att använda en existerande råkonverterare och sedan spara resultatet i TIFF? Sådana filer är ju rena bitmappfiler och kan således enkelt läsas in i en matris.
 
Tyckaren skrev:
Om Nikon har specialutvecklat ett filformat, och en mjukvara (capture NX) som skall vara som handen i handsken, så är det om man tänker efter, inte så konstigt att de väljer att innehålla information.
Det hade inte varit konstigt om de försökte tjäna pengar på att sälja dyr mjukvara som man var tvungen att ha för att nyttja sin billiga kamera till fullo.
Fast i ett läge då de har allt att vinna på att alla kan använda deras kameror till max (ty det borde göra kameror mer lättsålda) så tycker nog jag att det är rätt konstigt att de håller på just sådana specar.

Inte minst gör detta ständiga hemlighållande saker mindre framtidssäkra. Jag vill inte sitta på en massa råfiler i mitt bildarkiv om tio år om jag inte kan vara säker på att de går att öpnna med något som fungerar på den dator jag kör då (inte för att jag kör Nikon men problematiken är den samma för de flesta tillverkare).
 
Tobiasl skrev:
Visst tappar man information vid konverteringen, När man konverterar från NEF (eller andra rådataformat) till ex. tiff så är det ju en "envägskonvertering" eftersom man räknar fram färgvärdena för varje pixel med hjälp av ren sensordata. Det är i sig inte relaterat till Nikons krypetering utan är helt enkelt hur råformat fungerar; varje "pixel" i bilden räknas ju nominellt fram med hjälp av data från flera olika "pixlar" på sensorn som svarar mot olika våglängdsområden (en röd, en blå samt två gröna pixlar); gissningsvis tas även hänsyn till närliggande pixlar. Det gör att det finns en uppsjö olika sätt att räkna fram värdet på varje pixel i bilden vilket som sagt förklarar varför olika råkonverterare ger olika resultat (dessutom ska ju hänsyn tas till vitbalans etc i framräkningen). NEF är således egenligen inget bildformat, utan data som kan användas för att RÄKNA FRAM en bild.

Kanske det vore enklare att använda en existerande råkonverterare och sedan spara resultatet i TIFF? Sådana filer är ju rena bitmappfiler och kan således enkelt läsas in i en matris.


Nu när jag tänker efter är det ju väldigt självklart att det är så som du säger. Men att konvertera om från nef till tiff utanförprogrammet känns väldigt omständigt. Blir lite av ett dåligt flöde på det hela. Men om hittar ett bibliotek som gör om bilderna till tif. Sedan leker/ man lite med tif-matriserna i sin kod och gör det man ska göra för att sedan sparar dem än engång igen som tiff?

Så det är nef till tiff som är tipset? Och om man då ska leta efter ett bibliotek som gör det i C# vad är det för algoritmer som är att föredra. Finns det några som sägs vara outstanding?
 
ANNONS
Götaplatsens Foto