आप एक रंगीन छवि को कैसे चित्रित करते हैं?


14

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

यहाँ एक उदाहरण छवि है:

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


जवाबों:


27

आप जो चाहते हैं उसे इमेज प्रोसेसिंग में "थ्रेसहोल्ड" के रूप में जाना जाता है। मूल रूप से, यह एक इनपुट के रूप में एक छवि लेता है और एक छवि को आउटपुट करता है जिसमें दिए गए थ्रेशोल्ड के नीचे एक वैल्यू के साथ सभी पिक्सेल होते हैं, और सभी पिक्सेल जिनमें से वैल्यू व्हाइट के लिए सेट की गई सीमा से ऊपर होती है। इसके परिणामस्वरूप एक अनियंत्रित इनपुट छवि से एक श्वेत-श्याम छवि प्राप्त होती है।

आम तौर पर, आप अधिक पूर्वानुमान परिणामों के लिए पहले ग्रेस्केल में परिवर्तित करना चाहते हैं, लेकिन साथ ही एक पूर्ण-रंग छवि को थ्रेसहोल्ड करना संभव है।

आप ऐसा करने के लिए GIMP जैसे एक ग्राफिकल टूल का उपयोग अंतःक्रियात्मक रूप से कर सकते हैं (आप टूल को मुख्य मेनू -> रंग -> थ्रेसहोल्ड) के माध्यम से प्राप्त करेंगे, या आप इस तरह से ImageMagick का उपयोग कर सकते हैं:

convert colored.png -threshold 75% thres_colored.png

उदाहरण छवि पर उपरोक्त कमांड चलाने से नीचे दिखाया गया परिणाम उत्पन्न होता है।

ओपी की छवि का काला-सफेद संस्करण

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


2
धन्यवाद! चूंकि एक रंगीन छवि में आरबीजी तीन चैनल होते हैं, सामान्य रूप से क्या सीमा / सीमा लागू हो सकती है?
टिम

@ यह शायद सॉफ्टवेयर पर निर्भर करता है, लेकिन मैं थ्रेशोल्ड की उम्मीद करूंगा (जब तक कि आप प्रति चैनल या किसी विशिष्ट चैनल के लिए निर्दिष्ट न करें, उदाहरण के लिए देखें ImageMagick के कन्वर्ट का -channelविकल्प) पिक्सेल के कुछ प्रकार के "मूल्य" पर लागू किया जाता है, जिसे गणना की जाती है सभी चैनलों से। यही कारण है कि मैंने कहा कि आप अधिक अनुमानित परिणामों के लिए पहले ग्रेस्केल में बदलना चाहते हैं। (मेरा संपादन भी देखें।)
एक CVn

धन्यवाद! क्या आपके डाक में दिखाए गए कमांड में थ्रेशोल्ड लागू होता है, इसके लिए कुछ दस्तावेज मौजूद हैं?
टिम

@ वास्तव में नहीं। मुझे उम्मीद है कि कन्वर्ट या तो अधिकतम मूल्य का प्रतिशत (जो प्रति चैनल 256 होना चाहिए) या एक विशिष्ट मूल्य है, लेकिन मैं केवल एक प्रतिशत निर्दिष्ट करते समय एक उपयोगी परिणाम प्राप्त कर सकता था। जब आप इसे GIMP सहित एक ग्राफिकल टूल के साथ करते हैं, तो आपके पास आमतौर पर एक हिस्टोग्राम होगा जो छवि के टोनल वितरण को दर्शाता है; यह उचित मूल्य चुनने में एक बड़ी सहायता होगी। , केवल कमांड लाइन का उपयोग करना है जब तक आप ऐसा करने के लिए एक विशेष कारण है, है शायद यह की कीमत की तुलना में अधिक परेशानी, वास्तव में।
बजे एक CVn

2
एक साइड नोट के रूप में, अन्य थ्रॉल्डिंग विधियाँ मौजूद हैं, जिन्हें हार्ड-कोडेड थ्रेशोल्ड स्तर पर निर्भर नहीं करना पड़ता है। उदाहरण के लिए, ImageMagick में -latआसपास के पिक्सेल को ध्यान में रखते हुए एक स्थानीय अनुकूली दहलीज शामिल है।
२०

7

आप Imagemagick का उपयोग कर सकते हैं:

convert test.png -colorspace Gray gray_colorspace.png

से यहाँ

आपकी छवि पर लागू होने के बाद मुझे यहां क्या मिला है:

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


10
"बाइनरी" "द्वि" अर्थ "दो" से आता है, इसलिए मुझे लगता है कि ओपी छवि को शुद्ध काले और सफेद में बदलना चाहता है। ग्रेस्केल में बदलने से दो स्तरों से बहुत अधिक पैदावार होती है।
बजे एक CVn

माना! समझ में आता है, +1।
21

2

ImageMagick से -क्रोमोक्रोम एक विकल्प है जो कुछ स्मार्ट डाइथरिंग का उपयोग करता है, और-thresholdयदि आप इसे मानव उपभोग के लिए इरादा रखते हैं तोआउटपुट बहुत अधिक दिखाई देता है:

convert -monochrome signature.png out.png

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

ऐसी सरल छवि के लिए बहुत फर्क नहीं पड़ता है, लेकिन बड़े लोगों के लिए, यह हड़ताली है।


1

आप netpbmटूलकिट के साथ भी इसे आसानी से कर सकते हैं :

anytopnm inputfile | ppmtopgm | pgmtopbm > outputfile

ppmtopgmएक ग्रेस्केल छवि में pgmtopbmकनवर्ट करता है, एक ब्लैक-या-व्हाइट छवि में कनवर्ट करता है, और हम तब आउटपुट को एक फ़ाइल में रीडायरेक्ट करते हैं। यह pbm प्रारूप में होगा; यदि आप कुछ और सामान्य चाहते हैं, तो आपको एक आउटपुट कन्वर्टर जोड़ना होगा (जैसे, pnmtopngया कुछ ऐसा)

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