How can I find local maxima in an image in MATLAB? -


मेरे पास MATLAB में एक इमेज है:

  y = rgb2gray (imread ('some_image_file। जेपीजी '));  

और मैं उस पर कुछ प्रोसेसिंग करना चाहता हूं:

  pic = some_processing (y);  

और आउटपुट के स्थानीय मैक्सिमा को ढूंढें। यही है, y में सभी बिंदुएं जो अपने सभी पड़ोसियों के मुकाबले अधिक हैं।

मुझे ऐसा करने के लिए MATLAB फ़ंक्शन को नहीं मिल सकता है। सबसे अच्छा मैं इसके साथ आ सकता हूं:

<पूर्व> [dim_y, dim_x] = आकार (चित्र); enlarged_pic = [शून्य (1, dim_x +2); शून्य (dim_y, 1), पिक, शून्य (dim_y, 1); शून्य (1, dim_x +2)]; % अब एक 3D सरणी का निर्माण प्रत्येक विमान बढ़े हुए चित्र% ऊपर, नीचे, बाएं या दाएं,% सभी विकर्णों में, या नहीं [en_dim_y, en_dim_x] = आकार (enlarged_pic) में होगा; three_d (:,:, 1) = enlarged_pic; three_d (:,:, 2) = [enlarged_pic (2: अंत, :); शून्य (1, en_dim_x)]; three_d (:,:, 3) = [शून्य (1, en_dim_x); enlarged_pic (1: अंत -1, :)]; three_d (:,:, 4) = [शून्य (en_dim_y, 1), enlarged_pic (:, 1: अंत 1)]; three_d (:,:, 5) = [enlarged_pic (:, 2: अंत), शून्य (en_dim_y, 1)]; three_d (:,:, 6) = [pic, शून्य (dim_y, 2); शून्य (2, en_dim_x)]; three_d (:,:, 7) = [शून्य (2, en_dim_x); पिक, शून्य (dim_y, 2)]; three_d (:,:, 8) = [शून्य (dim_y, 2), पिक, शून्य (2, en_dim_x)]; three_d (:,:, 9) = [शून्य (2, en_dim_x); शून्य (dim_y, 2), पिक];

और फिर देखें कि क्या तीसरा आयाम के साथ सबसे पहले 1 परत (यानी: तीन_d (:,:, 1) ) में दिखाई देता है:

<पूर्व> (अधिकतम_वल, अधिकतम_आई) = अधिकतम (तीन_द, 3); परिणाम = खोज (max_i == 1);

क्या ऐसा करने के लिए कोई और अधिक सुरुचिपूर्ण तरीका है? यह एक कुप्पी की तरह लगता है।

  bw = pic & gt; असंतुलित (चित्र, [1 1 1; 1 0 1; 1 1 1]);  

Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

jquery - SimpleModal Confirm fails to submit form -

php - Multiple Select with Explode: only returns the word "Array" -