टूटी हुई jpg फ़ाइलों की मरम्मत करें


11

हाय मुझे यकीन है कि इसी तरह के बहुत सारे सवाल पूछे गए थे, लेकिन बहुत खोज करने के बाद भी मुझे अपनी स्थिति का वर्णन करने वाला कोई भी पद नहीं मिला।

मेरे पास कुछ jpg फाइलें हैं जिनमें एक निश्चित बिंदु के बाद कुछ रंग गलत हैं और प्रत्येक पिक्सेल को बाईं ओर स्थानांतरित कर दिया गया है। मुझे लगता है कि इस बिंदु पर कुछ गायब बाइट्स के कारण यह बदल जाता है। मैंने फ़ाइल को vi के साथ संपादित करने की कोशिश की, लेकिन यह पता लगाना असंभव है कि लापता बाइट्स कहाँ हैं, vi भी उपयोग करने के लिए बहुत जटिल है। मैंने नैनो की भी कोशिश की लेकिन यह बाइनरी-सेफ नहीं है।

यह प्रश्न की छवियों में से एक है:

यहाँ छवि विवरण दर्ज करें

इसलिए मैं आपसे दो सवाल पूछना चाहता हूं:

  1. मैं लिनक्स में ऐसी छवियों की मरम्मत कैसे कर सकता हूं?
  2. मैं लिनक्स के तहत बाइनरी टेक्स्ट एडिटर में फ़ाइल को सुरक्षित रूप से कैसे खोल और संपादित कर सकता हूं?

संपादित करें: हेक्सिडिट का उपयोग करते हुए मैंने पाया कि स्थिति 0x27F000 से 0x27F403 तक केवल 0xff हैं, और 0x27F404 से 0x27FFFF तक केवल शून्य 0x00 हैं। यह कुछ इस तरह बनाता है:

    0027EFF0   F8 83 C3 E2  09 35 AF 13  44 6E C5 FD  C7 EF 23 E8  .....5..Dn....#.
    0027F000   FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
    [...]
    0027F400   FF FF FF FF  00 00 00 00  00 00 00 00  00 00 00 00  ................
    [...]
    0027FFF0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00280000   8F 39 6E 47  4F 43 5F 36  7C 73 66 F1  0D AE AD AF  .9nGOC_6|sf.....

रैंडम नंबरों के साथ इन बाइट्स को बदलने से मैं छवि को अनफिट कर पा रहा था, लेकिन अभी भी रंग की समस्या है।

किसी ने मुझे jpeg एन्कोडिंग के बारे में कुछ प्रलेखन के लिए इंगित कर सकता है ताकि मैं यह पता लगा सकूं कि 8x8 ब्लॉक कहां समाप्त होता है।

मैं सोच रहा था कि स्थिति इतनी सटीक क्यों है (0x27F000 से 0x27FFFF), क्या यह मेरे कैम या मेमोरी कार्ड का एक बग हो सकता है?


मैं छवियों के एक बड़े सेट के लिए एक बार ऐसा हुआ था। मैंने उन्हें समाप्त कर दिया, वास्तव में शर्म की बात है। मुझे यह जानने में दिलचस्पी होगी कि क्या आप इनकी मरम्मत करने में सफल होते हैं, तो आपको आगे एक कठिन काम मिल गया है।
dtmland

हां यह शर्म की बात है, मैं यह पता लगाने की कोशिश कर रहा हूं कि यह जेपीईजी फाइलें कैसे एनकोड की जाती हैं, यह सिर्फ एक 8x4000px लाइन है जिसे मुझे हटाना होगा। इस फ़ाइल में 4.4MB की एक फ़ाइल में वास्तव में 4KB क्षतिग्रस्त हैं यह कम है तो 0.1% !!!
फल्क

जवाबों:


2

Http://en.wikipedia.org/wiki/JPEG#Entropy_coding पर विकिपीडिया लेख में बहुत सारी जानकारी है - आपकी वर्तमान समस्या के लिए सबसे प्रासंगिक यह है:

पूर्व निर्धारित डीसी गुणांक का उपयोग वर्तमान मात्रात्मक डीसी गुणांक की भविष्यवाणी करने के लिए किया जाता है। वास्तविक मूल्य के बजाय दोनों के बीच अंतर एन्कोडेड है। 63 परिमाणित एसी गुणांकों की एन्कोडिंग ऐसी भविष्यवाणी विभेदकों का उपयोग नहीं करती है।

छवि के शेष भाग में शिफ्टिंग रंग एक ही खराब डीसी गुणांक के कारण होता है जो शेष सभी को कैस्केड करता है। आप एक छोटा सा क्षेत्र (शायद एक बाइट, शायद दो - शायद यह वास्तव में बिट्स के कुछ अनुक्रम हैं) को खोजने में सक्षम हो सकते हैं जो रंगों को मज़बूती से प्रभावित करते हैं, और उसके लिए बड़ी संख्या में विभिन्न मूल्यों की कोशिश करते हैं।

एक ग्राफिक संपादक में छवि को ठीक करना आसान हो सकता है - ऐसा लगता है कि आपने जो पोस्ट किया है, वह शिफ्ट (और रैपराउंड) के अलावा है, बस कम चमक हो सकती है, आप क्षेत्र का चयन कर सकते हैं और स्तर टूल का उपयोग कर सकते हैं। अन्य लोगों के पास अधिक रंग शिफ्ट हैं, आप रंग चैनलों में अपघटन (JPG RGB या Y'CbCr में हो सकते हैं) को देखकर और प्रत्येक चैनल को अलग-अलग, संभवतः स्वैपिंग चैनलों को ठीक करके एक अच्छा पर्याप्त परिणाम प्राप्त करने में सक्षम हो सकते हैं।

संपादित करें: उफ़, मैंने नहीं देखा कि आपका प्रश्न कितना पुराना था। खैर, शायद यह आपके या किसी और के लिए उपयोगी होगा।


बहुत-बहुत धन्यवाद, सवाल की उम्र की परवाह न करें, अभी भी छवि और कुछ और है।
फ़ॉक

मुझे लगता है कि यह शर्म की बात है कि कैमरे को ऐसी स्थिति की उम्मीद नहीं थी, उन्हें प्रत्येक n (ब्लॉक 32) पंक्तियों की कुछ प्रमुख ब्लॉक डालनी चाहिए। दूसरी समस्या यह है कि मुझे यह भी नहीं पता कि हफमैन की तरह हानिरहित एक के बाद एक दोषरहित संपीड़न लागू होता है या नहीं। मैं ग्राफिक संपादकों के साथ छवि को खोलने के बजाय कुछ बाइट्स के साथ खेलना चाहता हूं: पहले उनमें से ज्यादातर इन छवियों को खोलना नहीं चाहते हैं, दूसरा मुझे नहीं लगता कि मुझे कुछ स्लाइडर के साथ खेलने में सटीक सुधार मिल सकता है। @ Random832 धन्यवाद और कृपया मुझे बताएं अगर आप कुछ और जानते हैं।
फाल्क

1

2) मैं लिनक्स के तहत बाइनरी टेक्स्ट एडिटर में फ़ाइल को सुरक्षित रूप से कैसे खोल और संपादित कर सकता हूं?

महान बाइनरी संपादकों के बहुत सारे यहां मिल सकते हैं: /programming/839227/how-to-edit-binary-file-on-the-unix-systems

मेरा व्यक्तिगत पसंदीदा रहे हैं vim साथ:% XXD हैक और hexedit


2
ठीक है, और उपयोग करने के लिए कुछ आसान है? नैनो की तरह।
फॉक

कुछ आसान पसंद है shed?
Attie

0

क्या आपने कोशिश की है photorec? आप इसे इस तरह उबंटू पर स्थापित कर सकते हैं:

sudo apt-get install testdisk

के साथ मैनुअल की जाँच करें:

man photorec

और बस photorecटर्मिनल से भागो जैसे:

photorec

यह आपको स्रोत और एक गंतव्य का चयन करने और स्वचालित रूप से jpg फ़ाइलों को पुनर्प्राप्त करने का प्रयास करने के लिए कहेगा।

मूल को नुकसान पहुंचाने से रोकने के लिए, मैं ddकमांड के साथ एक प्रति बनाने की सलाह देता हूं । सौभाग्य!


1
नमस्ते, फोटोरेक एक दूषित फाइल सिस्टम से फाइलों को पुनर्प्राप्त करने के लिए बनाया गया है, मेरे मामले में फाइलसिस्टम ठीक है, लेकिन छवि भ्रष्ट है इसलिए यह पूरी तरह से अलग स्थिति है।
फॉक

3
नमस्ते, जैसा कि मैंने पहले लिखा था कि फाइलसिस्टम के साथ कुछ भी गलत नहीं है, यह जेपीईजी फाइल है जिसमें त्रुटि है, वैसे भी धन्यवाद।
फाल्क

1
मुझे पता है कि फोटोरेक कैसे काम करता है, और यह वह नहीं है जिसकी मुझे ज़रूरत है, यह सिर्फ तस्वीर को कॉपी करेगा क्योंकि यह मरम्मत के साथ है।
फॉक

1
मैं सिर्फ मदद करने की कोशिश कर रहा हूं। आप टाइप करेंगे, तो आपने कोशिश नहीं की? मैं वास्तव में इसे एक एसडी कार्ड पर चलाता था और हाँ यह उन्हें कॉपी करता था लेकिन इसने उन्हें भी ठीक कर दिया। कोशिश करने के लिए चोट नहीं कर सकते, है ना? अगर यह कोशिश करने लायक नहीं है, तो ठीक है, सौभाग्य। मैं केवल इतना कह रहा हूं कि इसने मेरे लिए इसकी मरम्मत की। मैं अंतहीन चर्चा से बचने के लिए आगे कोई प्रतिक्रिया नहीं दूंगा।
विंसेंट गेरिस

1
मैं इसे आज़माना नहीं चाहता क्योंकि फोटोरेक को एक उपकरण के साथ पैरामीटर के रूप में चलाने के लिए मानसिक रूप से है, मेरे पास जो jpg फ़ाइल है वह मेरे hdd पर है जो पूरी तरह से ठीक है। यह सिर्फ एक अलग प्रकार की स्थिति है। जैसा कि मैंने कहा वैसे भी धन्यवाद।
फॉक

-1

मैंने सिर्फ Photorec का उपयोग एक SD कार्ड से चित्रों को पुनर्प्राप्त करने के लिए किया था जो भ्रष्ट हो गया था। हालाँकि यह सभी फ़ाइलों को पुनर्प्राप्त नहीं करता था, लेकिन इसने उनमें से अच्छी संख्या को पुनर्प्राप्त करने में बहुत अच्छा काम किया। उस के साथ, MP4 वीडियो बरामद किए गए थे, लेकिन खोला नहीं जा सका। कुछ जेपीईजी फाइलें बरामद की गई थीं, लेकिन वे भी देखी नहीं जा सकती थीं या वास्तव में गड़बड़ थीं, क्योंकि इस धागे की शुरुआत में नमूना प्रदान किया गया था। फोटोरेक ने उन्हें ठीक नहीं किया।

नीचे पंक्ति: Photorec एक भ्रष्ट फ़ाइल सिस्टम से खोई हुई फ़ाइलों को पुनः प्राप्त करने के लिए डिज़ाइन किया गया है, लेकिन स्पष्ट रूप से भ्रष्ट फ़ाइल की सामग्री को पुनर्प्राप्त करने के लिए कुछ भी नहीं करता है।


नमस्ते, भटकना, मैं फोटोरेक जानता हूं, लेकिन यह वह नहीं है जो मैं देख रहा हूं। यह दूषित फ़ाइलों को ठीक नहीं करेगा।
फॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.