পারফর্মিং রাস্টার নয়েজ হ্রাস এবং এজ স্মুথিং?


22

আমি এই মত একটি রাস্টার ইমেজ আছেরাস্টার চিত্র

আমি বিচ্ছিন্ন নয়েজ পয়েন্ট মুছতে এবং প্রান্তটি মসৃণ করতে চাই (সাদা একক পয়েন্ট বলুন এবং সত্তার প্রান্তগুলি মসৃণ দেখতে চাই)। আমি কীভাবে এটি আর্কজিআইএস বা আর এ করতে পারি?

ঘরের আকার 30 * 30।

উত্তর:


15

এই জাতীয় প্রক্রিয়াকরণের জন্য রূপক ক্রিয়াকলাপ প্রসারিত এবং সঙ্কুচিত করা হয়েছিল। আরকজিআইএস (বা গ্রাএসএস বা ম্যাথমেটিকা ) ব্যবহার করুন কারণ R"রাস্টার" গ্রন্থাগারটি খুব ধীর।


প্রায়শই এটি প্যারামিটারগুলির সাথে সামান্য পরীক্ষা করতে সহায়তা করে: কোনও চিত্র পরিষ্কার করার জন্য আপনাকে কতটা প্রসারিত এবং সঙ্কুচিত হওয়া দরকার তা সিদ্ধান্ত নিতে হবে; এবং সাধারণত আপনি যতটা সম্ভব কম কিছু করতে চান, কারণ প্রতিটি ক্রিয়াকলাপের কিছু তীক্ষ্ণ বিবরণ মসৃণ করে। এখানে একটি সিকোয়েন্স রয়েছে যা "সত্তা" র বেশিরভাগ বিশদ বজায় রেখে আপাত "শব্দ" কেটে ফেলতে বেশ কার্যকর। "সম্প্রসারণ" এবং "সঙ্কুচিত" উভয়ই শ্বেত কোষগুলির সাথে সম্পর্কিত, যাতে প্রসারিত হওয়ার ফলে তাদের বাহিরের দিকে বাড়তে থাকে এবং সঙ্কুচিত হওয়ার ফলে কালো কোষগুলি সাদা অঞ্চলে ছড়িয়ে পড়ে।

ইমেজ টেবিল

"পার্থক্য" কলামটি প্রতিটি পদক্ষেপে শুরু এবং শেষ চিত্রের মধ্যে পার্থক্যগুলি হাইলাইট করতে রঙ ব্যবহার করে: কালো রঙের জন্য নীল এবং সাদা রঙের জন্য কমলা যা কালো হয়ে গেছে।

যদি বৃহত্তর বাকী টুকরোগুলি সরানোর দরকার হয় তবে এগুলি সনাক্ত করার জন্য অঞ্চলগ্রুপের সাথে এটি সর্বোত্তমভাবে করা যেতে পারে, তারপরে পুনরায় শ্রেণিবদ্ধকরণের মাধ্যমে এগুলি মুছে ফেলা যায়। এই গোড়াতেই একটি বিকল্প ছিল, কিন্তু সাথে একটু প্রাথমিক পরিচ্ছন্নতার Expandএবং Shrinkকাজ কমায় এবং আকাঙ্ক্ষিত মসৃণকরণ প্রদান করে।


ঘটনাক্রমে, আমি এই চিত্রটিতে আটটি চিত্র ম্যাথমেটিকা কমান্ড দিয়ে তৈরি করতে বেছে নিয়েছি কারণ এগুলি এত সহজ, সহজ এবং দ্রুত কার্যকর করার জন্য:

i = Import["http://i.stack.imgur.com/umDg7.png"];
l = Dilation[k = Erosion[j = Dilation[i, 2], 3], 1];      (* This does all the work *)
delta = ColorCombine /@ {{i, j}, {j, k}, {k, l}, {i, l}}; (* Compares images *)

আরকজিআইএসে কর্মপ্রবাহ একই তবে সিনট্যাক্সটি আরও দীর্ঘতর হবে। আপনি যদি সত্যিই ব্যবহার করতে চান Rতবে "রাস্টার" লাইব্রেরিটি লোড করুন এবং focalFilterপ্রসারিত এবং সঙ্কুচিত করার জন্য ফাংশন তৈরি করতে শোষণ করুন । তারপরে অপারেশনগুলি সম্পাদন করতে প্রতিটি এক মিনিট অপেক্ষা করুন ...।


হ্যালো! আপনি যদি আপত্তি না করেন, আপনি আমাকে আপনার যোগাযোগের তথ্য পাঠাতে পারেন? আমি আমার গবেষণায় আপনাকে স্বীকার করতে চাই। ধন্যবাদ! @ শুভ
দেখেছেন

আপনি গ্রাসে সমমানের আদেশগুলি জানেন?
রিচার্ড

1
@ রিচার্ড আমি নিশ্চিত যে গ্রাসে এই ক্রিয়াকলাপগুলি করার জন্য প্রচুর সৃজনশীল উপায় রয়েছে তবে r.neighbors এই কাজের পক্ষে বেশ উপযুক্ত বলে মনে হচ্ছে।
whuber

12

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

এই দুটি সরঞ্জামের ধারণার একটি পৃষ্ঠা এখানে

আমি আরগুলিতে এই কাজগুলি কীভাবে সম্পাদন করব তা নিশ্চিত নই, তবে গ্রাস জিআইএস ব্যবহার করে কীভাবে মেজরিটি ফিল্টারটি সম্পাদন করতে হবে তার একটি পোস্ট এখানে


2

এটি মূলত @ হুইবারের উত্তরের একটি বৈকল্পিক এবং রাস্টারের তীক্ষ্ণ কোণগুলি মসৃণ করতে রাস্টার সীমানাকে প্রসারিত এবং সঙ্কুচিত করতে ইউক্যালিডিয়ান দূরত্ব ব্যবহার করে যা প্রসারিত-সঙ্কুচিত প্রক্রিয়া দ্বারা অতিরঞ্জিত হয় যা বাড়তে / অদ্বিতীয় করতে কোষের সংখ্যা ব্যবহার করে। যদিও ইউক্লিডিয়ান দূরত্ব সম্প্রসারণের অনুকরণ করে, তবে ছিটানো / সঙ্কুচিত করার জন্য নেতিবাচক মান প্রবর্তন করা সম্ভব নয়। কৌশলটি হ'ল ইউক্লিডিয়ান দূরত্বের রাস্টারকে নেতিবাচক নিতে এবং এটি বাড়ানোর জন্য একটি পুনরাবৃত্তি প্রক্রিয়া বিকাশ করা। নীচে প্রদত্ত নমুনা চিত্রের পদক্ষেপ এবং স্পষ্টতার জন্য স্ন্যাপশট দেওয়া আছে।

  1. কেবল 1s (সাদা কোষ) রাখতে রাস্টার পুনরায় শ্রেণিবদ্ধ করুন

  2. পুনরায় শ্রেণিবদ্ধ রাস্টারটিতে দ্বি-কক্ষের দূরত্বের (এই ক্ষেত্রে 60 মিটার) ইউক্যালিডিয়ান দূরত্ব প্রয়োগ করুন

  3. পুনরায় শ্রেণিবদ্ধ ব্যবহার করে প্রসারিত রাস্টারকে নেতিবাচক নিন (মানযুক্ত ঘরগুলি নোডাটা এবং নোডাটা 1 তে পরিণত হবে) বা রাস্টার ক্যালকুলেটরের কন এবং ইসনুল অপারেটরগুলি ব্যবহার করুন

  4. একই দূরত্ব (60 মিটার) সহ এই নেতিবাচক রাস্টারটিতে আরও একবার ইউক্লিডিয়ান দূরত্ব প্রয়োগ করুন

  5. উপরে বর্ণিত একই প্রক্রিয়া অনুসরণ করে এর নেতিবাচক নিন

  6. নমুনা রাস্টারটির মূল মানগুলিতে ফিরে আসার জন্য এই রাস্টারটিতে নোডাটা সেলগুলি 0 তে নির্ধারণ করতে রাস্টার ক্যালকুলেটর বা পুনঃনির্মাণ ব্যবহার করুন

সঙ্কুচিত বনাম ইউক্লিডিয়ান দূরত্ব প্রসারিত করুন

প্রসারিত এবং সঙ্কুচিতইউক্লিডিয়ান দূরত্ব

দ্রষ্টব্য: সবুজ প্রক্রিয়াজাত কোষগুলি দেখায় (প্রশ্নগুলিতে সাদা কোষ)

ইউক্যালিডিয়ান দূরত্বের সুবিধাটি হ'ল এটি হাইপোপেনজ এক্সটেন্টগুলির মাধ্যমে প্রতিটি কক্ষের থেকে যথাযথ দূরত্ব গ্রহণ করে যা অন্যথায় তীক্ষ্ণ প্রান্তগুলিকে মসৃণ করে। অন্যদিকে প্রসারিত এবং সঙ্কুচিত সরঞ্জামগুলির সেল প্যারামিটারের সংখ্যা, সমস্ত দিকের জন্য একই সংখ্যক কোষ প্রসেস করে, যা প্রান্তের মতো সীমাবদ্ধ-বাক্স দেয়, সুতরাং প্রান্তগুলি / কোণগুলিকে অতিরিক্তভাবে সাধারণ করে তোলে।

মূল ইস্যু যদিও এটি সাফল্যের সাথে প্রসারিত / সঙ্কুচিত হওয়ার মতো শব্দকে সরিয়ে দেয় না এবং এটি উত্তরের চেয়ে কিছুটা দীর্ঘ।


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