2016-04-18 7 views
8

मैं एक छवि है जो मुझे बराबर रहा हूँ और उसके बाद का उपयोग कर clahe, पर हिस्टोग्राम तो जैसे:एक हिस्टोग्राम बराबर छवि से शोर को कैसे निकालें?

enter image description here

मैं से छुटकारा पाने के लिए चाहते हैं:

self.equ = cv2.equalizeHist(self.result_array) 
clahe = cv2.createCLAHE(clipLimit=100.0, tileGridSize=(8,8)) 
self.cl1 = clahe.apply(self.equ) 

यह परिणाम मैं मिलता है सभी काले बिंदु जो शोर है। आखिरकार, मैं रक्त वाहिकाओं को निकालने की कोशिश कर रहा हूं, जो ऊपर दिखाए गए चित्र में काले हैं, ऐसा करने की कोशिश में, शोर निष्कर्षण को गलत बनाता है।

+1

शोर अच्छी तरह से उच्च विपरीत होने के लिए लग रहा है के लिए एक सकारात्मक परिणाम देखने के लिए, हो सकता है 5 के क्षेत्र में जाना चाहिए, तो आप सिर्फ एक आवेदन करने की आवश्यकता despeckle प्रक्रिया। इस उत्तर का प्रयास करें: http://stackoverflow.com/questions/5680429/how-to-implement-despeckle-in-opencv – PeteB

+3

गैर-हिस्ट-बराबर छवि में शोर को कम करना आसान हो सकता है। – Micka

+0

यदि यह शोर मूल छवि में मौजूद नहीं है, तो यह बराबरता का एक आर्टिफैक्ट है। आप गामा सुधार और विपरीत खींचने जैसे विकल्पों को आजमा सकते हैं। इसके अलावा, फ्रांगी फ़िल्टर आमतौर पर पोत जैसी संरचनाओं को निकालने के लिए उपयोग किया जाता है। – dhanushka

उत्तर

2

मेरी थीसिस का एक बड़ा हिस्सा छवियों में शोर को कम करने पर था, और ऐसी तकनीक थी जिसका उपयोग मैंने छवियों में जानकारी के तेज किनारों को संरक्षित करते हुए छवियों में शोर को कम किया। मैं अपने आप को यहाँ उद्धृत:

हाशिये पैटर्न से शोर को दूर करने के लिए एक प्रभावी तकनीक छवि साइन-कोज्या छानने [reference] का उपयोग कर फ़िल्टर करना है। एक कम-पास फ़िल्टर दो छवियों के साथ संकलित किया जाता है जो परिणामस्वरूप टेंगेंट प्राप्त करने के लिए विभाजित होते हैं, चरण पैटर्न को बहाल करते हैं लेकिन कम शोर के साथ विभाजित होते हैं। इस तकनीक का लाभ यह है कि चरण संक्रमण के तेज विवरण को बनाए रखते हुए प्रक्रिया को पर शोर को कम करने के लिए कई बार दोहराया जा सकता है।

और यहाँ कोड मैं प्रयोग किया जाता है:

import numpy as np 
from scipy import ndimage 

def scfilter(image, iterations, kernel): 
    """ 
    Sine‐cosine filter. 
    kernel can be tuple or single value. 
    Returns filtered image. 
    """ 
    for n in range(iterations): 
     image = np.arctan2(
     ndimage.filters.uniform_filter(np.sin(image), size=kernel), 
     ndimage.filters.uniform_filter(np.cos(image), size=kernel)) 
    return image 

वहाँ, image एक numpy सरणी छवि का प्रतिनिधित्व करने, रैखिक 2 * pi पर 0 और सफेद पर काला डाल पर पुनः पैमाना था, और kernal में आकार है डेटा पर लागू वर्दी फ़िल्टर की छवि पिक्सल। यह भी कई पुनरावृत्तियों नहीं ले 20.

आशा में मदद करता है :)

संबंधित मुद्दे