Mentre ero nel deserto, il mio sensore divenne polveroso. Sono stato fuori per settimane e non me ne sono accorto fino alla fine del mio viaggio, quindi ho centinaia di foto con la sporcizia del sensore. Durante la vacanza, la polvere peggiorava gradualmente man mano che cambiavo spesso lenti. Dopo la mia vacanza, il sensore è stato pulito professionalmente e le nuove foto non hanno punti, ma sto cercando una soluzione per le foto delle vacanze.
Per pulire le mie foto, ho usato The Gimp per produrre una maschera delle posizioni dei pezzi di polvere peggiori:
quindi usato gmic per rimuoverli dalla riga di comando:
gmic 08-34-51.jpg ../../../dustmask_20180606_sky_flat_neg.png +inpaint_patchmatch[0] [1],10,7,4,2,1,0 -o[2] 08-34-51-clean.jpg
Sebbene questa non sia una soluzione ottimale perché essenzialmente ridisegna quelle aree da zero (senza utilizzare le informazioni di sfondo), fornisce risultati soddisfacenti nel cielo blu. Ho pensato che in questo modo, avrei potuto automatizzare il processo su centinaia di immagini interessate. Sfortunatamente, la polvere non è fissa, quindi non funziona. Si sposta di circa 20 pixel, che corrisponde a circa 80 µm. Non so se ciò sia dovuto alla polvere che si sposta fisicamente o se potrebbe essere dovuto all'elaborazione delle immagini all'interno della fotocamera come la stabilizzazione dell'immagine o la correzione dell'obiettivo. Ho scattato alcune immagini sia in formato raw che JPEG, e per quelle immagini posso vedere visivamente un leggero spostamento nella forma dell'immagine.
È molto sottile, ma se si confrontano le seguenti due immagini, il pezzo di polvere più grande e prominente si è spostato dal centrarsi sul pixel (1677, 619)
al centrarsi sul pixel (1655, 603)
. Dall'altro lato, un pixel meno prominente sulla destra si è spostato da (4919, 1485)
a (4940, 1483)
. Forse non dovrebbe essere troppo sorprendente che i pezzi di polvere possano spostarsi e spostarsi rispetto al sensore?
Le foto sono prese a circa 90 minuti di distanza. Le immagini che ho pubblicato sono sottocampionate per un fattore 2.
I dati EXIF includono i dati Sony Makernote, che possono includere informazioni sulla stabilizzazione dell'immagine, come ad esempio ImageStabilization = 1
. Non so se includa ulteriori dettagli sulla stabilizzazione dell'immagine. Include un campo Sony_0x201f = 128 17 2 0
, che sembra variare tra le immagini, ma è identico tra le due immagini mostrate sopra, quindi non identifica (in modo univoco) le informazioni da correggere per la stabilizzazione dell'immagine. Non so se ci siano altri campi. I dati exif completi (come riportato da exiftool -v
) per un'immagine mostrano:
ExifToolVersion = 10.10 FileName = 08-35-11.jpg Directory =. Dimensione file = 9440161 FileModifyDate = 1528067625 FileAccessDate = 1529519016 FileInodeChangeDate = 1528150970 FilePermissions = 33204 Tipo file = JPEG FileTypeExtension = JPG MIMEType = image / jpeg JPEG APP1 (44908 byte): ExifByteOrder = II + [Directory IFD0 con 13 voci] | 0) ProcessingSoftware = digiKam-5.6.0 | 1) ImageDescription = | 2) Marca = SONY | 3) Modello = ILCE-6000 | 4) Orientamento = 1 | 5) Risoluzione X = 350 (350/1) | 6) YResolution = 350 (350/1) | 7) ResolutionUnit = 2 | 8) Software = ILCE-6000 v3.20 | 9) Modifica Data = 2018: 05: 11 08:35:11 | 10) YCbCrPosition = 2 | 11) ExifOffset (sottodirectory) -> | + [Directory ExifIFD con 38 voci] | | 0) Tempo di esposizione = 0,003125 (1/320) | | 1) FNumber = 11 (110/10) | | 2) Programma di esposizione = 3 | | 3) ISO = 100 | | 4) Sensibilità Tipo = 2 | | 5) RecommendedExposureIndex = 100 | | 6) ExifVersion = 0230 | | 7) DateTimeOriginal = 2018: 05: 11 08:35:11 | | 8) CreateDate = 2018: 05: 11 08:35:11 | | 9) ComponentsConfiguration = 1 2 3 0 | | 10) CompressedBitsPerPixel = 3 (3/1) | | 11) BrightnessValue = 10.76328125 (27554/2560) | | 12) ExposureCompensation = 0 (0/10) | | 13) MaxApertureValue = 3.6171875 (926/256) | | 14) MeteringMode = 5 | | 15) LightSource = 0 | | 16) Flash = 16 | | 17) FocalLength = 18 (180/10) | | 18) MakerNoteSony (Sottodirectory) -> | | + [Directory MakerNotes con 94 voci] | | | 0) Sony_0x1003 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | | 1) Sony_0x2000 = 0 | | | 2) PreviewImage = | | | 3) Valutazione = 0 | | | 4) Sony_0x2003 = | | | 5) Contrasto = 0 | | | 6) Saturazione = 0 | | | 7) Nitidezza = 0 | | | 8) Luminosità = 0 | | | 9) LongExposureNoiseReduction = 1 | | | 10) HighISONoiseReduction = 2 | | | 11) HDR = 0 0 | | | 12) Sony_0x200c = 0 0 0 | | | 13) Sony_0x200d = 1 (10/10) | | | 14) WBShiftAB_GM = 0 0 | | | 15) ShotInfo (sottodirectory) -> | | | + [Directory BinaryData, 390 byte] | | | | FaceInfoOffset = 94 | | | | SonyDateTime = 2018: 05: 11 08:35:11 | | | | SonyImageHeight = 4000 | | | | SonyImageWidth = 6000 | | | | FacesDetected = 0 | | | | FaceInfoLength = 37 | | | | MetaVersion = DC7303320222000 | | | 16) CreativeStyle = Standard | | | 17) ColorTemperature = 0 | | | 18) ColorCompensationFilter = 0 | | | 19) SceneMode = 0 | | | 20) ZoneMatching = 0 | | | 21) DynamicRangeOptimizer = 3 | | | 22) ImageStabilization = 1 | | | 23) ColorMode = 0 | | | 24) FullImageSize = 4000 6000 | | | 25) PreviewImageSize = 1080 1616 | | | 26) FileFormat = 3 3 1 0 | | | 27) Qualità = 2 | | | 28) FlashExposureComp = 0 (0/10) | | | 29) WhiteBalanceFineTune = 0 | | | 30) WhiteBalance = 0 | | | 31) SonyModelID = 312 | | | 32) Teleconverter = 0 | | | 33) MultiFrameNoiseReduction = 0 | | | 34) PictureEffect = 0 | | | 35) SoftSkinEffect = 0 | | | 36) VignettingCorrection = 2 | | | 37) Aberrazione cromatica laterale = 2 | | | 38) DistortionCorrectionSetting = 0 | | | 39) Sony_0x2015 = 65535 | | | 40) LensType = 65535 | | | 41) LensSpec = ... 5c | | | 42) AutoPortraitFramed = 0 | | | 43) FlashAction = 0 | | | 44) Sony_0x2018 = 0 | | | 45) Sony_0x2019 = 0 | | | 46) Sony_0x201a = 1 | | | 47) FocusMode = 2 | | | 48) AFAreaModeSetting = 1 | | | 49) FlexibleSpotPosition = 0 0 | | | 50) AFZoneSelected = 0 | | | 51) Sony_0x201f = 128 17 2 0 | | | 52) AFPointsUsed = 0 0 0 0 0 0 0 0 0 0 0 | | | 53) Sony_0x2021 = 0 | | | 54) FocalPlaneAFPointsUsed = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | | 55) Sony_0x2023 = 0 | | | 56) Sony_0x5001 = 0 (0/1000) | | | 57) Sony_0x5002 = 128 | | | 58) ExposureMode = 7 | | | 59) Sony_0xb045 = 0 | | | 60) Sony_0xb046 = 0 | | | 61) Qualità JPEG = 65535 | | | 62) FlashLevel = 0 | | | 63) ReleaseMode = 0 | | | 64) SequenceNumber = 0 | | | 65) Antisfocatura = 2 | | | 66) Sony_0xb04c = 1 (10/10) | | | 67) Sony_0xb04d = 0 | | | 68) DynamicRangeOptimizer = 1 | | | 69) Sony_0xb050 = 65535 | | | 70) Sony_0xb051 = 0 | | | 71) IntelligentAuto = 0 | | | 72) Sony_0xb053 = 0 | | | 73) WhiteBalance = 0 | | | 74) Tag9400c (sottodirectory) -> | | | + [Directory BinaryData, 556 byte] | | | | ReleaseMode2 = 0 | | | | ShotNumberSincePowerUp = 2 | | | | SequenceImageNumber = 0 | | | | SequenceLength = 1 | | | | SequenceFileNumber = 0 | | | | SequenceLength = 1 | | | | CameraOrientation = 1 | | | | Qualità2 = 0 | | | | SonyImageHeight = 500 | | | | ModelReleaseYear = 14 | | | 75) Sony_0x9401 = ..f .... pW ..). 6Q. \. (. GG..6 \ 6.GG..6 \ 6 .. $ .......... ^. ..3..s. [omissis] | | | 76) Tag9402 (sottodirectory) -> | | | + [Directory BinaryData, 400 byte] | | | | AmbientTemperature = 21 | | | | FocusMode = 2 | | | | AFAreaMode = 1 | | | | FocusPosition2 = 202 | | | 77) Tag9403 (sottodirectory) -> | | | + [Directory BinaryData, 1000 byte] | | | 78) Tag9404b (sottodirectory) -> | | | + [Directory BinaryData, 556 byte] | | | | LensZoomPosition = 27 | | | 79) Tag9405b (sottodirectory) -> | | | + [Directory BinaryData, 1992 byte] | | | | SonyISO = 4096 | | | | BaseISO = 4096 | | | | StopsAboveBaseISO = 4096 | | | | SonyExposureTime2 = 6208 | | | | Tempo di esposizione = 0,003125 | | | | SonyFNumber = 5888 | | | | SonyMaxApertureValue = 5054 | | | | SequenceImageNumber = 0 | | | | ReleaseMode2 = 0 | | | | HighISONoiseReduction = 2 | | | | LongExposureNoiseReduction = 1 | | | | PictureEffect2 = 0 | | | | Programma di esposizione = 1 | | | | CreativeStyle = 0 | | | | Nitidezza = 0 | | | | DistortionCorrection = 0 | | | | LensFormat = 1 | | | | LensMount = 2 | | | | LensType2 = 32787 | | | | LensZoomPosition = 27 | | | 80) Tag9406 (sottodirectory) -> | | | + [Directory BinaryData, 64 byte] | | | | BatteryTemperature = 87 | | | | BatteryLevel = 55 | | | 81) Sony_0x9407 = .2WW. ^ .... AT..W ..>. WSi ... lw ... W ............. T..i .... ... T .... Wl | | | 82) Sony_0x9408 = i .... * ...... \ ... * ..} ...... u} .. C. = .. @. [. 8k. & ... | ...... C ^ .. pp .. [snip] | | | 83) Sony_0x9409 =. ... l. (.... io ......... `s ... .......... i7. @. Sp ......> ... ..... @ .......... z ...% ...>. [omissis] | | | 86) Tag940c (sottodirectory) -> | | | + [Directory BinaryData, 64 byte] | | | | LensMount2 = 4 | | | | LensType3 = 32787 | | | | CameraE-mountVersion = 336 | | | | LensE-mountVersion = 263 | | | | LensFirmwareVersion = 1 | | | 87) Sony_0x940d = ...... g ...... z ...? .. u ............. GO.D ..... qUx ... ? .... el .... 8 [snip] | | | 88) Tag940e (sottodirectory) -> | | | + [Directory BinaryData, 12288 byte] | | | 89) Sony_0xa100 = | | | 90) Tag2010g (sottodirectory) -> | | | + [Directory BinaryData, 6556 byte] | | | | ReleaseMode2 = 0 | | | | DynamicRangeOptimizer = 1 | | | | ReleaseMode3 = 0 | | | | ReleaseMode2 = 0 | | | | FlashMode = 1 | | | | StopsAboveBaseISO = 4096 | | | | BrightnessValue = 17245 | | | | DynamicRangeOptimizer = 1 | | | | Impostazione HDRS = 0 | | | | ExposureCompensation = 0 | | | | PictureProfile = 0 | | | | PictureProfile = 0 | | | | PictureEffect2 = 0 | | | | Qualità2 = 0 | | | | MeteringMode = 0 | | | | Programma di esposizione = 1 | | | | WB_RGBLevels = 690 256 427 | | | | FocalLength = 180 | | | | MinFocalLength = 180 | | | | MaxFocalLength = 2000 | | | | SonyISO = 4096 | | | | LensFormat = 1 | | | | LensMount = 2 | | | | LensType2 = 32787 | | | 91) Sony_0x940f = liVi. $ ........) .... @ .. f ......... & .... @ ... Y @) .. Y @. @ ........... [snip] | | | 92) Tag9050 (sottodirectory) -> | | | + [Directory BinaryData, 944 byte] | | | | FlashStatus = 64 | | | | ImageCount = 3836 | | | | SonyFNumber = 5888 | | | | ReleaseMode2 = 0 | | | | ImageCount2 = 3836 | | | | SonyDateTime2 = .... #. | | | | ReleaseMode2 = 0 | | | | InternalSerialNumber = 162254 226 13 | | | | LensMount = 2 | | | | LensFormat = 1 | | | | LensType2 = 32787 | | | | LensSpecFeatures =. | | | | ImageCount3 = 44765 | | | 93) Sony_0x9412 = ... @. V ........................................ ............... [snip] | | 19) UserComment = | | 20) FlashpixVersion = 0100 | | 21) ColorSpace = 1 | | 22) ExifImageWidth = 6000 | | 23) ExifImageHeight = 4000 | | 24) InteropOffset (sottodirectory) -> | | + [Directory InteropIFD con 2 voci] | | | 0) InteropIndex = R98 | | | 1) InteropVersion = 0100 | | 25) FileSource = 3 | | 26) SceneType = 1 | | 27) CustomRendered = 0 | | 28) ExposureMode = 0 | | 29) WhiteBalance = 0 | | 30) DigitalZoomRatio = 1 (16/16) | | 31) FocalLengthIn35mmFormat = 27 | | 32) SceneCaptureType = 0 | | 33) Contrasto = 0 | | 34) Saturazione = 0 | | 35) Nitidezza = 0 | | 36) LensInfo = 18.200 3,5 6,3 (180/10 2000/10 35/10 63/10) | | 37) LensModel = E 18-200mm F3.5-6.3 OSS | 12) PrintIM (sottodirectory) -> | + [Directory PrintIM con 3 voci] | | PrintIMVersion = 0300 | | 0) PrintIM_0x0002 = 1 | | 1) PrintIM_0x0003 = 34 | | 2) PrintIM_0x0101 = 0 + [Directory IFD1 con 13 voci] | 0) Compressione = 6 | 1) ImageDescription = | 2) Marca = SONY | 3) Modello = ILCE-6000 | 4) Orientamento = 1 | 5) Risoluzione X = 72 (72/1) | 6) YResolution = 72 (72/1) | 7) ResolutionUnit = 2 | 8) Software = ILCE-6000 v3.20 | 9) Modifica Data = 2018: 05: 11 08:35:11 | 10) ThumbnailOffset = 38476 | 11) ThumbnailLength = 6426 | 12) YCbCrPosition = 2 JPEG APP1 (2825 byte): + [Directory XMP, 2796 byte] | XMPToolkit = XMP Core 4.4.0-Exiv2 | Software = digiKam-5.6.0 | CreatorTool = digiKam-5.6.0 | Didascalia = Grand Canyon-Parashant National Monument, lungo la Clayhole Road | Titolo = Grand Canyon-Parashant National Monument, lungo la Clayhole Road JPEG APP13 (126 byte): + [Directory di Photoshop, 112 byte] | IPTCData (sottodirectory) -> | + [Directory IPTC, 99 byte] | | CurrentIPTCDigest = ~ .g..z .... 3P} R .. | | - Record IPTCEnvelope - | | CodedCharacterSet =.% G | | - Record di applicazioni IPTCA - | | OriginatingProgram = digiKam | | ProgramVersion = 5.6.0 | | ObjectName = Monumento nazionale del Grand Canyon-Parashant, lungo il Clayhole Roa JPEG APP2 (156 byte): + [Directory MPF0 con 3 voci] | 0) MPFVersion = 0100 | 1) NumberOfImages = 2 | 2) MPImageList (SubDirectory) -> | + [Directory BinaryData, 16 byte] | | MPImageFlags = 2684354560 | | MPImageFormat = 0 | | MPImageType = 196608 | | MPImageLength = 8768466 | | MPImageStart = 0 | | DependentImage1EntryNumber = 2 | | DependentImage2EntryNumber = 0 | + [Directory BinaryData, 16 byte] | | MPImageFlags = 1073741824 | | MPImageFormat = 0 | | MPImageType = 65538 | | MPImageLength = 664145 | | MPImageStart = 8724632 | | DependentImage1EntryNumber = 0 | | DependentImage2EntryNumber = 0 JPEG DQT (130 byte): JPEG DHT (416 byte): JPEG SOF0 (15 byte): ImageWidth = 6000 ImageHeight = 4000 EncodingProcess = 0 BitsPerSample = 8 ColorComponents = 3 JPEG SOS Warning = [minor] Errore durante la lettura di PreviewImage PreviewImage = SCALAR (0x19b5ab8)
Quali strumenti esistono per rimuovere automaticamente la polvere del sensore digitale da una grande serie di foto? Ho centinaia di foto interessate (essenzialmente qualsiasi cosa scattata a F / 8 o inferiore). È più ovvio quando la regione interessata è nel cielo, quindi una soluzione che funziona solo per il cielo è soddisfacente. Supponendo che la polvere non si sposti troppo , dovrebbe essere possibile utilizzare una sorta di tecnica di abbinamento per calcolare una nuova maschera per ogni foto, prima di applicarla usando la pittura o qualche altro metodo. Sebbene teoricamente semplice, implementarlo può essere abbastanza laborioso in pratica - e non sono nemmeno sicuro che la verniciatura sia una buona soluzione.
A meno di riparare manualmente ogni foto (ci vogliono solo 4 minuti di tempo di calcolo sul mio vecchio desktop), quali strumenti esistono per riparare la mia intera serie di foto (o almeno quelle scattate a F / 8 o più piccole con il cielo nelle aree interessate) ?
Lavoro su Linux e il mio solito toolkit è composto da digikam, darktable, gimp e Python. La fotocamera è una Sony A6000 abbastanza nuova (fotocamera mirrorless / compatta). Alcune foto sono state scattate con un obiettivo OSS Sony da 18-200 mm, altre con un obiettivo manuale Samyang da 12 mm.
align_image_stack
: vedrò se mi può aiutare!