ในส่วนของการประมวลผลแบบดิจิทัลคุณควรหลีกเลี่ยงการใช้วิธีการลับคมชัดทั่วไปเช่นมาสก์ที่ไม่ชัดเนื่องจากวิธีการเหล่านี้จะเพิ่มความคมชัดเฉพาะที่ทำให้รายละเอียดปรากฏขึ้น แต่คุณจะไม่ได้รับรายละเอียดที่มองไม่เห็น เป็นการดีกว่าที่จะใช้วิธีการที่ขึ้นอยู่กับการย้อนกลับของการเบลอเนื่องจากโฟกัสไม่สมบูรณ์และเพื่อให้คุณจำเป็นต้องรู้ฟังก์ชั่นการกระจายจุด (ดังนั้นในส่วนของภาพที่ไม่ได้โฟกัสจะมีจุดเดียวปรากฏขึ้น เพื่อเป็นดิสก์ขนาดเล็กที่มีโปรไฟล์ความสว่างนี่คือฟังก์ชันการกระจายจุดที่เรียกว่า)
คุณสามารถคำนวณฟังก์ชั่นการกระจายจุดโดยการซูมเข้าสู่บริเวณที่มีคอนทราสต์สูงของภาพ หากคุณรู้ว่ามีขอบที่คมชัดซึ่งความสว่างเปลี่ยนแปลงไปตามจำนวนหนึ่งคุณสามารถคำนวณได้อย่างง่ายดายว่าฟังก์ชันการกระจายจุดคืออะไรที่จะให้โปรไฟล์ที่คุณเห็นในภาพ
ประมาณคร่าวๆจะได้รับโดยสมมติว่าฟังก์ชั่นการแพร่กระจายจุดเป็นดิสก์เครื่องแบบรัศมีR หากคุณซูมเข้าบางคมแล้วโค้งจะกลายเป็นขนาดเล็กมากในภาพขยายเพื่อให้คุณสามารถสมมติว่าคุณมีเส้นตรงในด้านหนึ่งสว่างv1ในด้านอื่น ๆ ของเส้นมันจะเป็นv2 ความสว่างระยะทาง d จากเส้นv (d)ในภาพจะเป็นฟังก์ชั่นที่ราบรื่นเนื่องจากความไม่ชัดซึ่งมีแนวโน้มที่v1ในด้านหนึ่งและv2ในอีกด้านหนึ่ง ใกล้กับ d = 0 ฟังก์ชัน g (d) = [v (d) - v1] / [2 (v2 - v1)] มีพฤติกรรมดังนี้:
g(d) = 1/4 - d/(pi R) + d^3/(6 pi R^3) +...
ดังนั้นด้วยการสร้างเส้นตรงของฟังก์ชั่น g (d) - 1/4 ในแง่ของพิกัด x และ y ของภาพที่อยู่ใกล้กับเส้นคุณจะได้รับผลลัพธ์ของรูปแบบ:
g(x,y) = A + b x + c y
และจากนั้นจะเป็นดังนี้:
1/(pi R) = sqrt[b^2 + c^2]
ดังนั้นฟังก์ชั่นการกระจายจุดสามารถคำนวณได้ด้วยความพยายามบางอย่างจากภาพถ้าคุณไม่ได้แย่คณิตศาสตร์
แล้วถ้าคุณได้ฟังก์ชั่นคำนวณการแพร่กระจายจุดแล้ว inverting เบลอเบลอเป็นชิ้นส่วนของเค้กโดยใช้กลไกเช่นWiener deconvolutionหรือริชาร์ดลูซี่-deconvolution อัลกอริทึมดังกล่าวมักจะรวมอยู่ในซอฟต์แวร์ประมวลผลภาพ แต่คุณควรเรียกใช้โดยใช้ฟังก์ชั่นกระจายจุดจริงที่ใช้กับภาพของคุณไม่ใช่แบบเกาส์เซียนมาตรฐาน เช่นปลั๊กอิน ImageJ นี้มีอัลกอริทึมการถอดรหัสที่ต้องการให้คุณระบุฟังก์ชันการกระจายจุด และ ImageJ สามารถได้ที่นี่
ฉันควรเพิ่มที่นี่ว่าควรทำในพื้นที่สีเชิงเส้น ดังนั้นคุณต้องแปลงเป็น RGB เชิงเส้นหรือเป็นพื้นที่สี XYZ ก่อนทำการลับที่นั่นแล้วเปลี่ยนกลับเป็น sRGB