Tôi có một số tài liệu cũ đã được quét và tôi muốn chuyển đổi chúng thành màu đen và trắng. Nội dung phải luôn là màu đen và nền trắng:
Tôi sử dụng Photoshop.
Tôi có một số tài liệu cũ đã được quét và tôi muốn chuyển đổi chúng thành màu đen và trắng. Nội dung phải luôn là màu đen và nền trắng:
Tôi sử dụng Photoshop.
Câu trả lời:
Nếu bạn có quyền kiểm soát quá trình quét hoặc có thể giải cứu chúng, hãy tăng cài đặt độ tương phản trong quá trình quét và đặt điểm đen ở bit văn bản tối nhất bạn có thể tìm thấy. Điều đó sẽ làm cho các bước dưới đây dễ dàng hơn. Nếu không, hãy đọc tiếp ...
Đây là một phần của quá trình quét tài liệu cũ khá điển hình:
Các chi tiết sẽ khác nhau tùy thuộc vào tài liệu (ví dụ, điều này có độ tương phản cao hơn mẫu của bạn một chút) nhưng phác thảo rộng sẽ giống nhau.
Lưu ý rằng thanh trượt màu vàng ở phía bên phải, làm sáng nền màu vàng. Tôi chỉ có thể làm tối văn bản một chút.
Điều này giúp bạn đạt 95%. Một tài liệu được quét thường có biểu đồ với một cục lớn về phía bên phải (tờ giấy) và một cục nhỏ hơn về phía bên trái (văn bản). Bạn sẽ phải thử nghiệm các tài liệu của mình để tìm các cài đặt phù hợp.
Từ thời điểm này, bạn có thể sao chép hình ảnh, làm phẳng bản sao và sử dụng các công cụ chỉnh sửa Photoshop thông thường của bạn để dọn sạch phần còn lại.
Bạn đề cập đến Photoshop, nhưng trong trường hợp bạn quan tâm thì cũng có một plugin GIMP có chức năng dọn dẹp và xử lý thang độ xám nâng cao:
Nó được gọi là Công cụ Nuvola và chủ yếu tập trung vào nghệ thuật được quét, nhưng bạn có thể muốn thử.
Trước:
Sau:
Nguồn: Đăng ký Plugin GIMP
Với GIMP:
Tôi đã thử các phương pháp được đề cập bao gồm. miễn phí FineThrưỡng http://www.mehdiplugins.com/english/finethrưỡng.htm plugin. Plugin này tạo ra kết quả tốt một cách nhanh chóng với điều kiện là tài liệu được chiếu sáng đồng nhất và bản thân giấy cũng có chất lượng đồng nhất. Tuy nhiên đây không phải là trường hợp của tôi. Tôi đã trải nghiệm rằng mặt trên của mỗi tài liệu nhẹ hơn phía dưới. Do đó, mọi phương thức và cài đặt từng phần của nó chỉ hoạt động tốt cho phần của mỗi trang chứ không phải cho phần còn lại của trang.
Cuối cùng, tôi đã tìm thấy hiệu ứng "Dynamic Threshold" , một phần của Zoner Photo Studio v15 . Phiên bản eval của nó là miễn phí trong một khoảng thời gian, tôi đoán vậy. Nó dường như bù đắp ngưỡng b / w theo độ sáng của vùng lân cận. Ứng dụng của nó là quá trình một bước duy nhất. Đối với tôi, các tham số "Lớn, giá trị +14" hoạt động rất tốt. Bên cạnh "Trình chỉnh sửa" Zoner còn có giao diện "Trình quản lý" trong đó bạn có thể xử lý lô trên tất cả các hình ảnh đã chọn. Cuối cùng, tôi đã có thể in kết quả trên máy in laser 300 dpi rất cũ với độ tương phản tuyệt vời.
Bây giờ, nhiệm vụ duy nhất còn lại mà tôi đang tìm kiếm là CROP tự động của mọi hình ảnh theo cách không rõ ràng để cắt bỏ các lề không cần thiết. Bất kỳ gợi ý đều được chào đón vì cắt xén thủ công là nhàm chán cũng như tốn thời gian.
Có một plugin trong sổ đăng ký plugin GIMP đã làm điều này. Nó được lưu trữ ở đây bây giờ.
Cách đây một thời gian tôi đã dịch nó sang Python và nó chạy nhanh hơn rất nhiều.
Đây là kết quả của ứng dụng của nó cho hình ảnh trong câu hỏi ban đầu:
Đây là kết quả của ứng dụng của nó cho hình ảnh trong câu trả lời của Alan:
Dù sao đây là mã của 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()