Saya memiliki beberapa dokumen lama yang telah dipindai, dan saya ingin mengubahnya menjadi hitam putih. Konten harus selalu hitam, dan latar belakang putih:
Saya menggunakan Photoshop.
Saya memiliki beberapa dokumen lama yang telah dipindai, dan saya ingin mengubahnya menjadi hitam putih. Konten harus selalu hitam, dan latar belakang putih:
Saya menggunakan Photoshop.
Jawaban:
Jika Anda memiliki kendali atas pemindaian, atau membuatnya dipindai kembali, tambah pengaturan kontras dalam pemindaian dan atur titik hitam pada bagian teks paling gelap yang dapat Anda temukan. Itu akan membuat langkah-langkah di bawah ini lebih mudah. Jika tidak, baca terus ...
Inilah bagian dari pemindaian dokumen lama yang cukup tipikal:
Detailnya akan berbeda tergantung pada dokumen (misalnya, ini memiliki kontras yang agak lebih tinggi dari sampel Anda), tetapi garis besarnya akan sama.
Perhatikan bahwa slider kuning jauh ke kanan, meringankan latar belakang kekuningan. Saya hanya bisa menggelapkan teksnya sedikit.
Ini membuat Anda 95% dari perjalanan ke sana. Dokumen yang dipindai biasanya memiliki histogram dengan benjolan besar ke kanan (kertas) dan benjolan kecil ke kiri (teks). Anda harus bereksperimen dengan dokumen Anda untuk menemukan pengaturan yang tepat.
Dari titik ini, Anda dapat menduplikasi gambar, meratakan duplikat, dan menggunakan alat retouching Photoshop biasa untuk membersihkan sisanya.
Anda menyebutkan Photoshop, tetapi jika Anda tertarik ada juga plugin GIMP yang melakukan pembersihan dan pemrosesan grayscale tingkat lanjut:
Ini disebut Nuvola Tools , dan terutama berfokus pada seni yang dipindai, tetapi Anda mungkin ingin mencobanya.
Sebelum:
Setelah:
Sumber: Registry Plugin GIMP
Dengan GIMP:
Saya mencoba berbagai metode yang disebutkan termasuk. Plugin FineThreshold http://www.mehdiplugins.com/english/finethreshold.htm gratis . Plugin ini menghasilkan hasil yang baik dengan cepat asalkan dokumennya menyala secara homogen dan kertasnya sendiri juga berkualitas homogen. Namun ini bukan kasus saya. Saya mengalami bahwa sisi atas setiap dokumen lebih ringan daripada bagian bawah. Akibatnya, setiap metode dan pengaturan parsialnya berfungsi dengan baik hanya untuk bagian dari setiap halaman dan tidak untuk sisanya.
Akhirnya saya menemukan efek "Dynamic Thresholding" yang merupakan bagian dari Zoner Photo Studio v15 . Versi eval-nya gratis untuk beberapa periode, kurasa. Tampaknya untuk mengimbangi ambang batas b / w sesuai dengan kecerahan lingkungan. Penerapannya adalah proses satu langkah saja. Bagi saya parameter "Besar, nilai +14" bekerja dengan sangat baik. Di samping "Editor" Zoner juga berisi antarmuka "Manajer" tempat Anda dapat memproses kumpulan gambar yang dipilih. Pada akhirnya saya dapat mencetak hasilnya pada printer laser 300 dpi yang sangat tua dengan kontras yang sangat baik.
Sekarang, satu-satunya tugas yang tersisa yang saya cari adalah CROP otomatis dari setiap gambar dengan cara yang cerdas untuk memotong margin yang tidak perlu. Semua petunjuk diterima karena pemotongan manual membosankan dan juga memakan waktu.
Ada plugin di registri plugin GIMP yang melakukan ini. Diarsipkan di sini sekarang.
Beberapa waktu lalu saya menerjemahkan ini ke Python dan berlari jauh lebih cepat.
Inilah hasil penerapannya pada gambar di pertanyaan awal:
Inilah hasil penerapannya pada gambar dalam jawaban Alan:
Pokoknya inilah kode plugin:
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()