এমএটিবিএলে চিত্রের সীমানা দিয়ে ছেদ করা অবজেক্টের সংখ্যা গণনা করা হচ্ছে


9

আমার কাছে বিভিন্ন লক্ষণ সহ একটি আরজিবি চিত্র রয়েছে। আমার প্রধান লক্ষ্যটি চিত্রের সীমানার সাথে যোগাযোগের লক্ষণগুলি গণনা করা।

পদ্ধতির এবং সমস্যা

আমি চিত্রটি ফিগার লোড করে শুরু করেছি। 1], তারপরে এটিকে গ্রেস্কেলে রূপান্তরিত করুন এবং কিছু গোলমাল [চিত্রের হাত থেকে মুক্তি পেতে একটি মিডিয়ান ফিল্টার প্রয়োগ করেছেন। 2]। তারপরে আমি এটি 0.2 এর একটি প্রান্তিকের সাথে দ্বিখণ্ডিত করেছিলাম, যার ফলস্বরূপ চিত্র 3 রয়েছে this এই সময়ে আমি আমার বাইনারিযুক্ত চিত্র পেয়েছি, তবে সমস্যাটি হ'ল একই চিহ্নের সাথে সম্পর্কিত কিছু অংশ কেবল একটির পরিবর্তে বিভিন্ন অঞ্চলে প্রদর্শিত হচ্ছে। এখন আমার লক্ষ্য হ'ল অঞ্চলগুলি একই বস্তুর সাথে সংযুক্ত করা, তাই আমি bwlabelচিত্রটিতে কতগুলি লক্ষণ রয়েছে তা গণনা করতে এবং imclearborderসীমান্তের চিহ্নগুলি থেকে মুক্তি পেতে ব্যবহার করতে পারি এবং এর bwlabelমধ্যে পার্থক্য পেতে আবার ব্যবহার করতে পারি দুই.

আমার পদ্ধতির ব্যবহার করতে ছিল bwmorph, Dilateবস্তু উম্মুক্ত করে দেইনি? এবং তারপর তাদের সাথে পূরণ করতে চেষ্টা imfill, holes। তবে সমস্যাটি হ'ল আমি যদি তাদের অল্প পরিমাণে ডিলিট করি তবে [চিত্র: 4], imfillএগুলি পূরণ করার মতো মনে হচ্ছে না, যদি আমি তাদের প্রচুর পরিমাণে বিভক্ত করি [চিত্র 5] সমস্ত বস্তু একত্রিত হতে শুরু করে :(

কোড

img=im2double(imread('image.png')); figure, imshow(img) 
img_gray=rgb2gray(img); imshow(img_gray);                                 
img_mediana=medfilt2(img_gray, [3 3]); figure, imshow(img_mediana);       
img_bin=im2bw(img_mediana, 0.2); imshow(img_bin)
img_dilate=bwmorph(img_bin, 'Dilate', 10); imshow(img_dilate)
img_fill=imfill(img_dilate, 'Holes'); figure, imshow(img_fill)

পরিসংখ্যান

চিত্র 1 :

চিত্র 1 http://dl.rodbox.com/u/5272012/1.png

চিত্র 2 :

ডুমুর 2 http://dl.roidbox.com/u/5272012/2.png

চিত্র 3 :

ডুমুর 3 http://dl.roidbox.com/u/5272012/3.png

চিত্র 4 :

ডুমুর 4 http://dl.roidbox.com/u/5272012/4.png

চিত্র 5 :

ডুমুর 5 http://dl.roidbox.com/u/5272012/5.png


আমার প্রশ্নটি হ'ল আপনাকে কী বলে যে চিহ্নটি ভেঙে গেছে? আপনি কীভাবে সত্যিই আউটপুটটি রাখতে চান? মানে - আপনি কি কাটা সমস্ত চিহ্নকে রঙিন করতে চান? বা আপনি কি সত্যই প্রতিটি চিহ্নের তালিকা তৈরি করতে চান এবং কাট / পূর্ণ শ্রেণিবদ্ধ করতে চান?
দীপন মেহতা

উত্তর:


3

আমার মতে, প্রসারণ ক্ষয় খুব প্রাথমিক সরঞ্জাম। এই জাতীয় সিদ্ধান্ত গ্রহণের জন্য আপনার কাছে একটি শক্তিশালী তথ্য বেস এবং বেশ শালীন ইনপুট চিত্র রয়েছে।

এখানে আমার মতামত:

  1. চিত্র 1 থেকে 3 এ যাওয়ার জন্য যে যুক্তিসঙ্গত সাফল্য আপনি দেখিয়েছেন তা প্রদত্ত, আপনি স্বতন্ত্র লক্ষণগুলি চিহ্নিত করতে এবং সেগমেন্ট করতে পারেন।

  2. ধরে নিই যে আপনি আগে থেকেই লক্ষণগুলি জেনে গেছেন, আপনি প্যাটার্ন ম্যাচিংয়ের জন্য একটি শালীন দ্রুত অ্যালগরিদম প্রয়োগ করতে পারেন। সঠিক নিদর্শনগুলি না জানা থাকলে- আপনি কেবল প্যাটার্নটির বাইরের আকৃতিটি সনাক্ত করতে পারেন।

  3. শ্রেণিবিন্যাসের ভিত্তিতে, আপনি সর্বদা প্রতিটি মিলিত প্যাটার্নের সেন্ট্রয়েড এবং এর সম্পর্কিত প্রস্থ এবং উচ্চতা নির্ধারণ করতে পারেন। যদি সেন্ট্রয়েড এক্স, ওয়াই অবস্থান সীমান্তের খুব কাছাকাছি হয় - যেমনcentroid(x)<0 অথবা centroid(x)>imagewidthshapewidth এটি প্রান্তের বাইরে, একইভাবে আপনি ওয়াই অক্ষের জন্যও আবেদন করতে পারেন।

  4. প্রদত্ত যে আপনি কেবল প্রান্তে কী পড়েছেন তা নিয়েই উদ্বিগ্ন - আপনার কেবল প্রতিটি প্রান্ত দিয়েই শুরু হওয়া উচিত এবং সেখানে প্যাটার্নের মিলটি শুরু করা উচিত। আংশিক প্যাটার্ন / আকারের সাথে মিলে যাওয়া শুরু করুন এবং আংশিক প্যাটার্ন / আকারটি যদি সেই বস্তুর সাথে মেলে যেটি কিনে কাটা হচ্ছে।

এখানে কিছু উল্লেখ রয়েছে যা আপনাকে সমস্যাটি ভালভাবে তৈরি করতে সহায়তা করতে পারে।

আপনি যে চিহ্নগুলি / টোকেন নিয়ে কাজ করছেন সে সম্পর্কে অনেকগুলি বুনিয়াদি বুঝতে এই কাগজটি খুব ভাল।

অনিল কে জৈন এবং আদিত্য ভায়লা শেপ-ভিত্তিক পুনরুদ্ধার: ট্রেডমার্ক ইমেজ ডেটাবেস প্যাটার্ন স্বীকৃতি সহ একটি কেস স্টাডি 1998, খণ্ড। 31, নং 9, পিপি 1369-1390

অনেকগুলি গবেষণা উপাদান রয়েছে যা আংশিক বা বাতিল আকৃতি / প্যাটার্নের মিলের সাথে কাজ করে।

এলি সাবের, ইয়াওউউ জু, এ মুরাত টেকলপ আংশিক মিলের নির্দেশিত চিত্রের লেবেলিং প্যাটার্ন রিকগনিশন 38 (2005) 1560 - 1573 এর জন্য সাব-ম্যাট্রিক্স ম্যাচিং দ্বারা আংশিক আকারের স্বীকৃতি

আপনি যদি এই পদ্ধতিকে গ্রহণ করেন তবে আরও নির্দিষ্ট প্রশ্নের জন্য এই উত্তরটি প্রসারিত করবে।


হে! আমি প্যাটার্ন মিলটি ব্যবহার করতে পারি না কারণ এটি খুব দীর্ঘ সময় এবং খুব বেশি গণনার কাজ গ্রহণ করবে। এছাড়াও বস্তুর স্কেল (চিহ্ন), পরিবর্তনশীল হতে পারে (প্রফেসর আমাদের এলোমেলো চিত্র দেয় যেখানে স্কেল এফ লক্ষণগুলি খুব বেশি 30% থেকে -30% পর্যন্ত হতে পারে, সুতরাং একটি প্যাটার্নের মিলটি অকেজো, আমার আরও দ্রুত পদ্ধতির প্রয়োজন । এই এক সমাধানের লক্ষ্যে
রুই Trovisco

পছন্দ করুন যে কারণে আমি প্রকারে লিখেছি - আমি আপনার মতামতের ভিত্তিতে উত্তরটি উন্নত করব। আমি আপনার প্রশ্নের উপর কিছু মন্তব্য রেখেছি। দয়া করে সেখানে ফিরে যান।
দীপন মেহতা

1

আপনি যা খুঁজছেন তার বিপরীত চিত্র প্রদর্শন করার জন্য এখানে একটি সামান্য অনুপ্রেরণা।

ডুমুর 3 দিয়ে শুরু করুন।

% Find background
labels = bwlabel(~fig3);
[n,idx] = hist(labels(:),0:max(labels(:)));
[bgrSize bgrLableIdx] = max(n);
bgr = (labels == idx(bgrLableIdx));
bgr = imopen(bgr,strel('disk',3));

% Remove border objects and cleanup
borderCleared = imclearborder(~bgr);
borderCleared = imopen(borderCleared,strel('disk',3));

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.