رفتن به مطلب
spring2020

تخمین قطر با استفاده از عملیات مورفولوژی

پست های پیشنهاد شده

سلام من میخوام با استفاده از عملیات مورفولوژی قطر تومور رو یه تخمین اولیه بزنم که بعد با استفاده از همین بیام از هاف استفاده کنم و دور تومور با هاف دایره بکشم اما نمیدونم با استفاده از عملیات مورفولوژی چطوری میشه تخمین زد کسی میتونه بهم کمک کنه؟

 

البته با استفاده از هاف دور تومور خط کشیدم اما میخوام قبل از تشخیص تومور با هاف بیام با عملیات مورفولوژی یه تخمین اولیه از قطر تومور بزنم

17050OS8xMS8yMDE1IDEyOjAwOjAwIEFNMzM_.jpg

  • Like 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام من میخوام با استفاده از عملیات مورفولوژی قطر تومور رو یه تخمین اولیه بزنم که بعد با استفاده از همین بیام از هاف استفاده کنم و دور تومور با هاف دایره بکشم اما نمیدونم با استفاده از عملیات مورفولوژی چطوری میشه تخمین زد کسی میتونه بهم کمک کنه؟

 

البته با استفاده از هاف دور تومور خط کشیدم اما میخوام قبل از تشخیص تومور با هاف بیام با عملیات مورفولوژی یه تخمین اولیه از قطر تومور بزنم

17050OS8xMS8yMDE1IDEyOjAwOjAwIEFNMzM_.jpg

 

 

سلام

خب برای اینکه قطرش رو به دست بیاد، باید سگمنتش کنی دیگه. از همین تصویر می خوای قطر به دست بیاد یا نه اطلاعات دیگه ای هم در موردش داریم؟

 

مثلا میشه یه کد ساده ای مثل این نوشت، ولی احتمالش زیاده که در مورد تصویر دیگه جواب نده، به اندازه تومور و سطوح روشنایی بقیه تصویر هم وابشته هست:

8jznl45xr4y3dys7p6oo.png

 

clear;
img = imread('1.jpg');
BW = im2bw(img);
imshow(BW)
BW2 = imopen(BW,strel('Disk',15));
imshow(256.*uint8(cat(3,BW,BW,BW2)))

 

البته میشه با دیسک کوچیکتر هم imopen رو به کاربرد، برای تمام اون آبجکت های باقی مونده توی تصویر با ROI متلب قطر و اینا رو حساب کرد، ولی خب نمیشه گفت که کدومشون تومور بوده، مگر اینکه اطلاعات دیگه ای هم داشته باشیم.:a030:

  • Like 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام یه دنیا ازتون ممنونم من همون قسمت سفید رنگ رو میخوام قطرش رو بدست بیارم میشه لطفا در مورد دو خط کد آخری که نوشتین واسم توضیح بدین من اصلا نمیدونم این کد ها چه کاری میکنن البته اگه ممکن هست

10 تا تصویر دارم این رو که متوجه بشم چطوری هست بقیه رو خودم میتونم بدست بیارم

فعلا ملاک من همین تصویر هست و اینکه تومور همون قسمت سفید رنگ داخل سگمنت بندی شما هست

  • Like 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام یه دنیا ازتون ممنونم من همون قسمت سفید رنگ رو میخوام قطرش رو بدست بیارم میشه لطفا در مورد دو خط کد آخری که نوشتین واسم توضیح بدین من اصلا نمیدونم این کد ها چه کاری میکنن البته اگه ممکن هست

10 تا تصویر دارم این رو که متوجه بشم چطوری هست بقیه رو خودم میتونم بدست بیارم

فعلا ملاک من همین تصویر هست و اینکه تومور همون قسمت سفید رنگ داخل سگمنت بندی شما هست

 

خواهش می کنم، خب اگه همون قسمت سفید کافیه، این کد رو استفاده کن:

 

clear;
img = imread('1.jpg');
BW = im2bw(img);
imshow(BW)
BW2 = imopen(BW,strel('Disk',15));
imshow(BW2)

 

imopen واسه همون علمیات مورفولوژی morphological opening هستش در واقع، که برای اینکار از یه structuring element که اینجا یه دیسک ساده هست استفاده می کنه. احتمالا تو توضیحات مثلا dilation دیدی که یه دایره رو روی مرز شکل حرکت میدن تا به شکل جدید برسن. این دایره در واقع همون دیسک هست، میشه به جاش لوزی، خط یا شکل های دیگه هم استفاده بشه که خب یه تفاوت هایی می کنه تو نتیجه بوجود بیاد. بذار کامل بازش کنیم:

 

clear;
img = imread('1.jpg');
BW = im2bw(img);
figure;
set(gcf,'Position',get(0,'ScreenSize'))
subplot(131)
imshow(BW)

SE = strel('Disk',15);
BW_eroding = imerode(BW,SE);
subplot(132)
imshow(BW_eroding)

BW_Dilating = imdilate(BW_eroding,SE);
subplot(133)
imshow(BW_Dilating)

 

خب اینجا یه دیسک با شعاع 15 پیکسل داریم (SE)، opening هم میشه

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.
و بعدش

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.
، پس اول اون دیسک رو مماس بر مرزای تصویر باینریمون حرکت میدیم، تصویرمون از هر طرف 15 پیکسل لاغرتر میشه، عملا خیلی از قسمتاش از بین میره، به جز مرکز تومورمون. بعد میام

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.
انجام میدیم روی نتیجه مرحله قبل تا دوباره به اندازه 15 پیکسل از هر طرف اون چاقش می کنیم که تقریبا همون مرزای تومور رو بهمون خواهد داد.

 

در مورد اون خط آخر کد قبلیم، فقط خواستم رنگیش کنم که نشون بدم کدوم قسمت از تصویر باینری رو بهمون میده، تصویر RGB سه تا کانال داره دیگه، اومدم کانال قرمز و سبز رو تصویر باینری اصلی رو دادم، در نتیجه زرد دیده میشه بیشتر بخشاش به جز تومور، خود نتیجه ای که از opening بدست آورده بودم رو به عنوان کانال آبی دادم. در نتیجه تومور که در سه تا کانال یک بود (هم باینری اولیه و هم نتیجه آخر) سفید دیده میشه.:a030:

  • Like 2

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنونم از لطفتون

تا اینجا خود تومور بدست اومد من میخوام قطر دایره ای که قرار هست با الگوریتم هاف دور تومورم بکشم رو با استفاده از مورفولوژی تخمین بزنم

توی الگوریتم هاف هست یه قسمتش که اندازه ی شعاع رو میدیم

[c r m]=imfindcircles(i, [75 85],'sensitivity',0.96);
viscircles(c,r);

من میخوام اون قسمت که نوشتم [75 85] رو بیام با مورفولوژی بدست بیارم یعنی مورفولوزی قطر دایره هاف رو به من بگه که تقریبا چقدر باید باشه

  • Like 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
خیلی ممنونم از لطفتون

تا اینجا خود تومور بدست اومد من میخوام قطر دایره ای که قرار هست با الگوریتم هاف دور تومورم بکشم رو با استفاده از مورفولوژی تخمین بزنم

توی الگوریتم هاف هست یه قسمتش که اندازه ی شعاع رو میدیم

[c r m]=imfindcircles(i, [75 85],'sensitivity',0.96);
viscircles(c,r);

من میخوام اون قسمت که نوشتم [75 85] رو بیام با مورفولوژی بدست بیارم یعنی مورفولوزی قطر دایره هاف رو به من بگه که تقریبا چقدر باید باشه

 

خواهش می کنم، ساده ترین راهی که به ذهنم می رسه استفاده از find متلب هست، که شماره سطر و ستون پیکسل های یک یا سفید رو توی تصویر باینری آخر بهمون میده، اولین و آخرین شماره سطر و ستون هامون نشون دهنده چهار تا نقطه مماس از بالا، پایین، چپ و راست به ما میده، که خب فاصله بینشون میشه قطر در راستای عمودی و افقی:

 

clear;
img = imread('1.jpg');
BW = im2bw(img);
figure;
set(gcf,'Position',get(0,'ScreenSize'))
subplot(131)
imshow(BW)

SE = strel('Disk',15);
BW_eroding = imerode(BW,SE);
subplot(132)
imshow(BW_eroding)

BW_Dilating = imdilate(BW_eroding,SE);
subplot(133)
imshow(BW_Dilating)

[row, col] = find(BW_Dilating);
D1 = max(row) - min(row)
D2 = max(col) - min(col)

 

D1 =

   55


D2 =

   47

  • Like 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام توی کد هایی که نوشتین این خط کد چه کاری انجام میده؟

set(gcf,'Position',get(0,'ScreenSize'))

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام توی کد هایی که نوشتین این خط کد چه کاری انجام میده؟

set(gcf,'Position',get(0,'ScreenSize'))

 

سلام

اين مياد اندازه پنجره figure به اندازه صفحه نمايش مي كنه و كل صفحه ي مانيتور رو پوشش ميده.

 

اين قسمتش اندازه صفحه نمايش رو بر حسب پيكسل پيدا مي كنه:

 

,get(0,'ScreenSize')

 

gcf هم current figure handle هست، كه با دستور set مي تونيم به كمك ويژگي Position مكان شروع، طول و عرض پنجره رو تعيين كنيم.

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

کسی اینجا هست که تعدادی تصویر تومور با پسوند dicom داشته باشه در اختیارم بگذاره

نوع خوشخیم یا بدخیم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام اگه بخوایم تعداد پیکسل هایی که هنگام تقسیم بندی تصویر بدست آورده ایم را محاسبه کنیم چه کاری باید انجام دهیم؟

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مثلا میخوام بدونم تعداد پیکسل های تومور چند تا هستن بعدش تعداد پیکسل های کل مغز چند تا هستن؟

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

جواب رو فهمیدم با دستور length(find(cc==1));

بدست می آید منظور از cc همون تصویر تقسیم بندی شده است

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
جواب رو فهمیدم با دستور length(find(cc==1));

بدست می آید منظور از cc همون تصویر تقسیم بندی شده است

 

اینجوری هم میشه:

 

nnz(cc==1)

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام ممنون از لطفتون

خب حالا اگه بخوام مساحت قسمت ای که جدا شده رو بدست بیارم همون تومور صفحه اول که بدست اومده باید چیکار کنم الگوریتم خاصی داره ؟

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام ممنون از لطفتون

خب حالا اگه بخوام مساحت قسمت ای که جدا شده رو بدست بیارم همون تومور صفحه اول که بدست اومده باید چیکار کنم الگوریتم خاصی داره ؟

 

خواهش می کنم، خب همین تعداد پیکسل ها میشه گفت مساحت رو بهمون میده دیگه، نیست اینطور؟

 

از ROI متلب هم فکر کنم بتونی استفاده کنی، جزو ویژگی ها باید مساحت هم داشته باشه.:a030:

  • Like 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×