मेरे पास कुछ पुराने दस्तावेज हैं जिन्हें स्कैन किया गया है, और मैं उन्हें काले और सफेद में बदलना चाहता हूं। सामग्री हमेशा काली होनी चाहिए, और पृष्ठभूमि सफेद:
मैं फोटोशॉप का इस्तेमाल करता हूं।
मेरे पास कुछ पुराने दस्तावेज हैं जिन्हें स्कैन किया गया है, और मैं उन्हें काले और सफेद में बदलना चाहता हूं। सामग्री हमेशा काली होनी चाहिए, और पृष्ठभूमि सफेद:
मैं फोटोशॉप का इस्तेमाल करता हूं।
जवाबों:
यदि आपके पास स्कैनिंग पर नियंत्रण है, या उन्हें बचाया जा सकता है, तो स्कैन में कंट्रास्ट सेटिंग को बढ़ाएं और जिस काले बिंदु को आप पा सकते हैं, उसके सबसे काले बिंदु पर सेट करें। इससे कदम नीचे आसान हो जाएंगे। यदि नहीं, तो पढ़ें ...
यहाँ एक काफी पुराने दस्तावेज़ स्कैन का हिस्सा है:
दस्तावेज़ के आधार पर विवरण अलग-अलग होंगे (उदाहरण के लिए आपके नमूने की तुलना में यह कुछ हद तक विपरीत है), लेकिन व्यापक रूपरेखा समान होगी।
ध्यान दें कि पीले रंग की पृष्ठभूमि को हल्का करते हुए, येलो स्लाइडर सही तक है। मैं केवल पाठ को थोड़ा काला करने में सक्षम था।
यह आपको 95% वहां जाता है। एक स्कैन किए गए दस्तावेज़ में आम तौर पर दाईं ओर (कागज) की ओर एक बड़ी गांठ और बाएं (पाठ) की ओर एक छोटी गांठ होती है। सही सेटिंग्स खोजने के लिए आपको अपने दस्तावेज़ों के साथ प्रयोग करना होगा।
इस बिंदु से, आप छवि को डुप्लिकेट कर सकते हैं, डुप्लिकेट को समतल कर सकते हैं, और शेष को साफ करने के लिए अपने नियमित फ़ोटोशॉप रीटचिंग टूल का उपयोग कर सकते हैं।
आप फ़ोटोशॉप का उल्लेख करते हैं, लेकिन यदि आप रुचि रखते हैं, तो एक GIMP प्लगइन भी है जो उन्नत ग्रेस्केल सफाई और प्रसंस्करण करता है:
इसे नुवोला टूल कहा जाता है , और यह मुख्य रूप से स्कैन की गई कला पर केंद्रित है, लेकिन आप इसे आजमाना चाहते हैं।
पहले:
बाद:
स्रोत: जीआईएमपी प्लगिन रजिस्ट्री
GIMP के साथ:
मैंने विभिन्न उल्लिखित विधियों की कोशिश की। फ्री फाइनट्रेशल्ड http://www.mehdiplugins.com/english/finethreshold.htm प्लगइन। यह प्लगइन जल्दी से अच्छे परिणाम प्रदान करता है बशर्ते कि दस्तावेज़ समरूप रूप से प्रकाश में हो और कागज भी समरूप गुणवत्ता का हो। हालाँकि यह मेरा मामला नहीं था। मैंने अनुभव किया कि हर दस्तावेज़ का ऊपरी भाग नीचे से अधिक हल्का था। नतीजतन, हर विधि और इसकी आंशिक सेटिंग केवल हर पृष्ठ के हिस्से के लिए अच्छी तरह से काम करती है और इसके बाकी हिस्सों के लिए नहीं।
आखिरकार मुझे "डायनेमिक थ्रेशहोल्डिंग" का प्रभाव मिला, जो ज़ोनर फोटो स्टूडियो v15 का हिस्सा है । मुझे लगता है कि कुछ समय के लिए इसका एवलांच संस्करण मुफ्त है। यह पड़ोस की हल्कापन के अनुसार बी / डब्ल्यू सीमा को ऑफसेट करता है। इसका आवेदन केवल एक-चरणीय प्रक्रिया है। मेरे लिए "बड़े, मूल्य +14" के मापदंडों ने बहुत अच्छा काम किया। "संपादक" के अलावा, ज़ोनर में "प्रबंधक" इंटरफ़ेस भी है जिसमें आप सभी चयनित छवियों पर बैच को संसाधित कर सकते हैं। अंत में मैं उत्कृष्ट विपरीत के साथ बहुत पुराने 300 डीपीआई लेजर प्रिंटर पर परिणाम प्रिंट करने में सक्षम था।
अब, केवल एक ही शेष कार्य जिसके लिए मैं देख रहा हूं , प्रत्येक छवि को स्वचालित रूप से अनावश्यक मार्जिन को काटने के लिए एक बौद्धिक तरीके से स्वचालित सीआरओपी है। किसी भी संकेत का स्वागत है क्योंकि मैनुअल क्रॉपिंग उबाऊ होने के साथ-साथ समय लेने वाली भी है।
ऐसा करने वाले GIMP प्लगइन रजिस्ट्री में एक प्लगइन था। यह अब यहाँ संग्रहीत है ।
कुछ समय पहले मैंने पायथन में इसका अनुवाद किया और यह बहुत तेजी से चला।
यहाँ मूल प्रश्न में छवि के लिए इसके आवेदन का परिणाम है:
यहाँ एलन के उत्तर में छवि के लिए इसके अनुप्रयोग का परिणाम है:
वैसे भी यहाँ प्लगइन का कोड है:
from __future__ import division
import random
import gimp, gimpfu
pdb = gimp.pdb
sample_count = 100
def set_image_background_to_white(image, drawable):
pdb.gimp_context_push()
pdb.gimp_image_undo_group_start(image)
pdb.gimp_progress_set_text('Correcting background')
if drawable.is_gray:
channel_count = 1
elif drawable.is_rgb:
channel_count = 3
assert not drawable.is_indexed
# get some random points in the image
sum_by_channel = [0]*channel_count
for sample_index in range(sample_count):
px = pdb.gimp_drawable_get_pixel(drawable,
random.randint(0, pdb.gimp_drawable_width (drawable)-1),
random.randint(0, pdb.gimp_drawable_height(drawable)-1))[1]
for i in range(channel_count):
sum_by_channel[i] += px[i]
pdb.gimp_progress_update(sample_index/sample_count)
if drawable.is_gray:
pdb.gimp_levels(drawable, gimpfu.HISTOGRAM_VALUE,
0, sum_by_channel[0]/sample_count,
1.,
0, 255)
elif drawable.is_rgb:
for i in range(channel_count):
pdb.gimp_levels(drawable, 1+i,
0, sum_by_channel[i]/sample_count,
1.,
0, 255)
pdb.gimp_levels(drawable, gimpfu.HISTOGRAM_VALUE,
0, 255,
0.6,
0, 255)
pdb.gimp_image_undo_group_end(image)
pdb.gimp_displays_flush()
pdb.gimp_progress_update(1.)
pdb.gimp_context_pop()
gimpfu.register('set_image_background_to_white', # name
'Set image background to white', # blurb
'No help info yet', # help
'Robert Fleming', # author
'Robert Fleming', # copyright
'2015', # date
'<Image>/Filters/Set Background to White', # menupath
'RGB*, GRAY*', # imagetypes
[], # params
[], # results
set_image_background_to_white, # function
)
gimpfu.main()