সুচিপত্র:

BME 60B স্যান্ডবক্স প্রকল্প: 6 টি ধাপ
BME 60B স্যান্ডবক্স প্রকল্প: 6 টি ধাপ

ভিডিও: BME 60B স্যান্ডবক্স প্রকল্প: 6 টি ধাপ

ভিডিও: BME 60B স্যান্ডবক্স প্রকল্প: 6 টি ধাপ
ভিডিও: BME 60B Heart Rate Monitor Project with MATLAB 2024, নভেম্বর
Anonim
BME 60B স্যান্ডবক্স প্রকল্প
BME 60B স্যান্ডবক্স প্রকল্প

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

ধাপ 1: বিশ্লেষণের জন্য ছবি নির্বাচন করুন এবং কনফিগার করুন

বিশ্লেষণের জন্য ছবি নির্বাচন করুন এবং কনফিগার করুন
বিশ্লেষণের জন্য ছবি নির্বাচন করুন এবং কনফিগার করুন

আমাদের কোডের প্রথম ধাপ হল উপযুক্ত ছবি নির্বাচন করা এবং ম্যাটল্যাবে বিশ্লেষণের জন্য কনফিগার করা। আমরা uigetfile ফাংশন ব্যবহার করে ছবিটি নির্বাচন করতে সক্ষম যা আমাদেরকে যেকোন ফাইল ধরতে এবং প্রোগ্রামে ertোকানোর অনুমতি দেয়। তারপরে, ইম্রেড ব্যবহার করে আমরা চিত্রটি পড়ি এবং এটি ম্যাটল্যাবে বিশ্লেষণের জন্য কনফিগার করি। নির্বাচিত ছবিটি একটি সাবপ্লটে প্রদর্শিত হয়।

ধাপ 2: থ্রেশহোল্ড এবং GUI

থ্রেশহোল্ড এবং GUI
থ্রেশহোল্ড এবং GUI
থ্রেশহোল্ড এবং GUI
থ্রেশহোল্ড এবং GUI

কোডের একেবারে শুরুতে "uigetfile" ব্যবহার করে একটি ছবি নির্বাচন করা হয় এবং তারপর সেই ভেরিয়েবল দিয়ে সেই ছবিটি সংজ্ঞায়িত করা হয়। বিভিন্ন বিশ্লেষণ চালানোর সময় ভেরিয়েবলটি কোড সনাক্ত করতে ব্যবহৃত হবে। একটি 2x2 সাবপ্লট চিত্রে তৈরি করা হয়েছে। পজিশন 1 এ, মূল ছবিটি প্রদর্শিত হবে। কোডের পরবর্তী বিভাগ যেখানে থ্রেশহোল্ডের সমন্বয় ঘটে। প্রাথমিকভাবে 0.6 এর একটি থ্রেশহোল্ডের একটি ডিফল্ট ব্যবহার করা হয় এবং সাবপ্লটের অবস্থান 2 এ প্রদর্শিত হয়। একটি if- স্টেটমেন্ট ব্যবহারকারীকে থ্রেশহোল্ড রাখতে চায় বা এটি সমন্বয় করতে চায় কিনা তা নির্ধারণ করতে ব্যবহার করা হয়। ব্যবহারকারী একটি GUI ব্যবহার করে থ্রেশহোল্ড সামঞ্জস্য করতে পারে যার মধ্যে বিভিন্ন থ্রেশহোল্ড অবস্থার ছবি, স্লাইডার এবং একটি সেভ বোতাম অন্তর্ভুক্ত থাকে। থ্রেশহোল্ড সেট করার পরে, ব্যবহারকারী ছবিটি সংরক্ষণ করতে সেভ বাটনে ক্লিক করবে এবং এটি ব্যবহারকারীদের ম্যাটল্যাব ফাইলগুলিতে একটি পিএনজি হিসাবে এবং "নিউ ইমেজ" নামে সংরক্ষণ করা হবে। তারপর নতুন ছবিটি কল করার জন্য একটি নেস্টেড if-statement ব্যবহার করা হয় যা আবার 'uigetfile' ব্যবহার করে সংরক্ষিত হয়েছিল। একবার এই ধাপগুলি সম্পূর্ণ হলে নতুন চিত্রটি একটি নতুন পরিবর্তনশীল দ্বারা সংজ্ঞায়িত করা হয় এবং পূর্ববর্তী অবস্থানটি 2 থেকে প্রতিস্থাপন করে।

ধাপ 3: প্লটিং কনট্যুর এবং সেল ডিস্ট্রিবিউশন

প্লটিং কনট্যুর এবং সেল ডিস্ট্রিবিউশন
প্লটিং কনট্যুর এবং সেল ডিস্ট্রিবিউশন
প্লটিং কনট্যুর এবং সেল ডিস্ট্রিবিউশন
প্লটিং কনট্যুর এবং সেল ডিস্ট্রিবিউশন

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

ধাপ 4: সেল ইমেজ রূপান্তর করুন

সেল ইমেজ রূপান্তর করুন
সেল ইমেজ রূপান্তর করুন

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

ধাপ 5: কোষ গণনা করুন এবং কোষের মিলন গণনা করুন

কোষ গণনা করুন এবং কোষের সংমিশ্রণ গণনা করুন
কোষ গণনা করুন এবং কোষের সংমিশ্রণ গণনা করুন

কোডের এই ধাপে, আমরা লক্ষ্য করেছি যে ছবিতে থাকা কোষের সংখ্যা গণনা করা। আমরা প্রাথমিকভাবে ব্লবগুলির ক্ষেত্রগুলি গণনা করার জন্য ফাংশন অঞ্চল প্রপস ব্যবহার করেছি এবং যদি এলাকাটি আমাদের পছন্দসই সীমানায় গণনা করা হয় তবে এটি একটি উপ -প্লটে প্লট করা হবে। ছোট গোলমাল পিক্সেল বা কোষ নয় এমন বড় তীব্রতা দূর করার জন্য সীমানা নির্ধারণ করা হয়েছিল। সেল কাউন্টার তারপরে প্লট করা সেন্ট্রয়েডগুলি গণনা করবে এবং সেগুলি লুপের কাউন্টারে যুক্ত করবে। একবার কোষগুলির ক্ষেত্রগুলি নির্ধারিত হয়ে গেলে আমরা সঙ্গম গণনা করতে সক্ষম হয়েছি। কোডের এই ধাপের প্রধান গুরুত্ব ছিল কোষের সঙ্গম খুঁজে বের করা এবং এটি ছিল কোডের আমাদের শেষ লক্ষ্যে গুরুত্বপূর্ণ। আমরা প্রতিটি ব্লবে পিক্সেল (sum (allAreas)) যোগ করে এবং তারপর ছবির মোট পিক্সেল মান (numel (img)) দ্বারা ভাগ করে এটি গণনা করেছিলাম। এই অনুপাতটি আমাদের সঙ্গম দেবে এবং যদি এটি গবেষক কর্তৃক কোষগুলি প্রেরণের সময়ের চেয়ে 80% এর বেশি হওয়ার জন্য নির্ধারিত হয়। আমাদের লক্ষ্য ছিল যথাসম্ভব সুনির্দিষ্ট এবং নির্ভুল হওয়া কিন্তু সীমিত সময়ের সাথে তাই ভুল ছিল। যদি সময় দেওয়া হয় তবে আমরা ব্লবগুলির গণনাকে আরও নির্ভুল করার উপায়গুলি দেখতাম যেমন আরও ফিল্টারিং কৌশল এবং/অথবা একটি হাফ ট্রান্সফর্ম কারণ ফিল্টারিং কৌশলটি চেষ্টা করার জন্য এখনও যথেষ্ট গবেষণা করা হয়নি

ধাপ 6: কোষের গোলাকারতা

কোষের গোলাকারতা
কোষের গোলাকারতা
কোষের গোলাকারতা
কোষের গোলাকারতা

একটি ছবিতে ব্লব এর গোলাকারতা পরিমাপ করতে সক্ষম হওয়ার আগে, আমাদের RGB থেকে গ্রেস্কেল, বাইনারাইজ, ইনভার্ট এবং ইমেজ ফিল্টার করতে হবে। একটি ফিল্টারিং টেকনিক ফাংশন ব্যবহার করে bwareaopen, যা আগ্রহের ছবি ফিল্টার করে এবং এটি এমন কোন স্পেক্স বা পিক্সেল সরিয়ে দেয় যা খুব ছোট যা একটি কোষের আকারকে উপস্থাপন করে না। একটি কাঠামোগত উপাদান একটি ডিস্কের আকৃতি এবং 2 এর আশেপাশে তৈরি করা হয় এবং এটি পটভূমিতে বা কোষের মধ্যে যে কোনও ফাঁক পূরণ করতে ব্যবহৃত হয়। তারপর আমরা ফাংশন ব্যবহার করি bwboundaries যা ব্লবস ট্রেস করে এবং এটি একটি ম্যাট্রিক্সে সঞ্চয় করে। আমরা তারপর বিভিন্ন রং ব্যবহার করে ছবিটি লেবেল করি যাতে এটি একটি স্পষ্ট দৃশ্যমান হয়। এরপরে, ছবিতে পাওয়া বস্তু এবং গর্তের সংখ্যা অনুসারে চলমান একটি লুপ ব্যবহার করে, এটি এই অ্যারের সাথে সম্পর্কিত ব্লবগুলির চারপাশে একটি সীমানা নির্ধারণ করে। একবার এই লুপটি শেষ হলে, আরেকটি লুপ শুরু হয়, আবার ছবিতে পাওয়া বস্তু এবং গর্তের সংখ্যা অনুযায়ী। এইবার আমরা ফাংশন রিজিওন প্রোপস ব্যবহার করি যা অ্যারে থেকে ক্ষেত্রের মত কিছু বৈশিষ্ট্য সংগ্রহ করে এবং বস্তু এবং গর্তের সংখ্যা ধারণকারী তথ্য সংরক্ষণ করে। এই তথ্য ব্যবহার করে, আমরা সেন্ট্রয়েড আকৃতি ব্যবহার করে এই বস্তুর ক্ষেত্রফল এবং পরিধি গণনা করি। যখন আমরা একটি বৃত্তাকার বস্তুর মেট্রিক একক গণনা করি এবং ফলাফলগুলি তুলনা করার জন্য একটি থ্রেশহোল্ড সেট করা হয় এবং গণনা করা সেন্ট্রয়েডের পাশে পাঠ্য হিসাবে এই পরিমাপটি প্লট করি। চূড়ান্ত কোডটি ছবিতে পাওয়া বিভিন্ন কোষের গোলাকারতা প্রদর্শন করবে এবং মানটির কাছাকাছি থাকা যেকোনো মান অন্যদের চেয়ে বেশি গোল হবে। 1 এর একটি মান বোঝায় যে কোষটি পুরোপুরি গোলাকার এবং উত্তীর্ণ হওয়ার জন্য ভাল অবস্থায় রয়েছে।

প্রস্তাবিত: