۰
subtitle
ارسال: #۱
  
Image cropping در متلب
سلام دوستان در متلب چطوری میتونم یک تصویر را در مرحله پیش پردازش Image cropping کنم؟
لطفا راهنماییم کنید
لطفا راهنماییم کنید
۱
ارسال: #۲
  
RE: Image cropping در متلب
(۱۵ مهر ۱۳۹۵ ۱۲:۰۷ ب.ظ)mina001 نوشته شده توسط: سلام دوستان در متلب چطوری میتونم یک تصویر را در مرحله پیش پردازش Image cropping کنم؟هم با موس میشه و هم دستی.
لطفا راهنماییم کنید
این دستور که باعث میشه عکس رو گرافیکی نشون بده و با موس، مستطیل رو انتخاب کنید
کد:
I = imread('circuit.tif')
J = imcrop(I);
کد:
I = imread('circuit.tif');
J = imcrop(I,[60 40 100 90]);
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
ارسال: #۳
  
RE: Image cropping در متلب
نقل قول: هم با موس میشه و هم دستی.ممنونم از پاسختون
این دستور که باعث میشه عکس رو گرافیکی نشون بده و با موس، مستطیل رو انتخاب کنید
دستور زیر هم مختصات گوشههای مستطیل رو به صورت دستی دادهکد:
I = imread('circuit.tif')
J = imcrop(I);
کد:
I = imread('circuit.tif');
J = imcrop(I,[60 40 100 90]);
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
کدی که من نوشتم به صورت زیر است، ولی درست کار نمیکند من میخواهم فقط قسمت سیاه دور تصویر حذف شود، یعنی قسمت imcropp رو نمیدانم چطور برای برش عدد بدم!
کد:
X = imread('C:\Users\mina\Documents\MATLAB\retina\dataset drive\train\21training.jpg');
X2 = imcrop(X,[50 40 50 50]);
subplot(1,2,1)
imshow(X)
title('Original Image')
subplot(1,2,2)
imshow(X2,'Border','tight')
title('Cropped Image')
ارسال: #۴
  
RE: Image cropping در متلب
(۱۶ مهر ۱۳۹۵ ۰۶:۰۶ ب.ظ)mina001 نوشته شده توسط:نقل قول: هم با موس میشه و هم دستی.ممنونم از پاسختون
این دستور که باعث میشه عکس رو گرافیکی نشون بده و با موس، مستطیل رو انتخاب کنید
دستور زیر هم مختصات گوشههای مستطیل رو به صورت دستی دادهکد:
I = imread('circuit.tif')
J = imcrop(I);
کد:
I = imread('circuit.tif');
J = imcrop(I,[60 40 100 90]);
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
کدی که من نوشتم به صورت زیر است، ولی درست کار نمیکند من میخواهم فقط قسمت سیاه دور تصویر حذف شود، یعنی قسمت imcropp رو نمیدانم چطور برای برش عدد بدم!
کد:
X = imread('C:\Users\mina\Documents\MATLAB\retina\dataset drive\train\21training.jpg');
X2 = imcrop(X,[50 40 50 50]);
subplot(1,2,1)
imshow(X)
title('Original Image')
subplot(1,2,2)
imshow(X2,'Border','tight')
title('Cropped Image')
حدس میزدم این سؤال رو بپرسید چون معنی نداره توو متلب یکی دستی بیاد تصویر رو ببره.
ببینید باید اون چهار نقطه رو با کد پیدا کنید، اون نقاط به صورت [tex](x1,\: y1)[/tex] که نقطهی بالا سمت چپ مستطیل رو نشون میده، و [tex](x2,\: y2)[/tex] که پایین و سمت راست رو نشون میده. همین دو نقطه برای crop لازم و کافی هستند.
برای پیدا کردن x1، یعنی مختصات x سمت چپ تصویر (یه خط عمودی سمت چپ تصویر که باید بریده بشه)، باید از سمت چپ تصویر شروع کنید و به هر ستون نگاه کنید ببینید پیکسل غیرسیاه داره یا نه. یعنی برای هر ستون، به تمامی پیکسلها (سطرها) نگاه کنید. البته مطمئن نیستم که اونا کاملا سیاه هستند، مثلاً میتونید بگید که RGBش بیشتر از [tex](10,10,10)[/tex] بود (یعنی تقریباً سیاه نبود) پس جزو شکل هست. اینطوری x1 رو میتونید پیدا کنید. در واقع همچین چیزی:
کد:
for j = 1 to j = M
for i = 1 to i = N
if(img(i,j,1) > 10 && img(i,j,2) > 10 && img(i,j,3) > 10)
x1 = j;
break;
همین کار رو برای y1، یعنی خط افقی بالای تصویر که باید بریده بشه، میتنید انجام بدید. توو هر سطر، باید نگاه کنید ببینید پیکسل غیرسیاه هست یا نه. پس این سری اول به سطر، و بعد به همهی ستونهای اون سطر باید نگاه کنید:
کد:
for i = 1 to N
for j = 1 to M
if (...)
y1 = i;
برای سمت راست و پایین هم مشابه این کار رو انجام میدید. منتهی باید متغیرها رو کم کنید. یعنی برای خط سمت راست، از سمت راستترین ستون نگاه کنید به سمت چپترین:
کد:
for j = M to 1
for i = 1 to N
کد:
for i = N to 1
for j = 1 to M
۰
ارسال: #۵
  
RE: Image cropping در متلب
برای پیدا کردن کوچیکترین مستطیلی که شامل اون دایره ها باشه این راه بهتر به نظر میرسه:
۱/ تصویر رنگی تون رو تبدیل به grayscale کنید. اسمش رو بزاریه I1
۲/ لبه های تصویر I1 رو پیدا کنید.اسمش رو بزارید I2
۳/ در تصویر I2 به دنبال چهار مقدار زیر بگردید(تصویر I2 مقادیر ۰و۱ داره.) بیشترین و کمترین اندیس x,y . این مقادیر چهارچوب دایره رو تعیین میکنن.
۴/ حالا با دونستن اینها میتونید از همون دستور imcrop استفاده کنید.
۱/ تصویر رنگی تون رو تبدیل به grayscale کنید. اسمش رو بزاریه I1
۲/ لبه های تصویر I1 رو پیدا کنید.اسمش رو بزارید I2
۳/ در تصویر I2 به دنبال چهار مقدار زیر بگردید(تصویر I2 مقادیر ۰و۱ داره.) بیشترین و کمترین اندیس x,y . این مقادیر چهارچوب دایره رو تعیین میکنن.
۴/ حالا با دونستن اینها میتونید از همون دستور imcrop استفاده کنید.
موضوعهای مرتبط با این موضوع... |
|||||
موضوع: | نویسنده | پاسخ: | بازدید: | آخرین ارسال | |
شبکه عصبی مک کلاچ برای یک مورد کاربردی با متلب | Sanazzzz.mi | ۰ | ۲,۲۳۷ |
۲۶ مهر ۱۳۹۸ ۰۱:۲۰ ق.ظ آخرین ارسال: Sanazzzz.mi |
|
مجموعه آموزشی رایگان برنامه نویسی متلب | net work | ۰ | ۲,۱۶۵ |
۲۲ فروردین ۱۳۹۸ ۰۳:۲۱ ب.ظ آخرین ارسال: net work |
|
نیاز به دیتاست برای شبکه عصبی مصنوعی در متلب MATLAB | ghasemkh | ۰ | ۲,۹۰۲ |
۲۵ دى ۱۳۹۷ ۰۳:۳۲ ق.ظ آخرین ارسال: ghasemkh |
|
مشکل لایسنس متلب | αɾια | ۱۳ | ۱۶,۲۸۴ |
۲۱ آذر ۱۳۹۷ ۱۰:۴۷ ق.ظ آخرین ارسال: αɾια |
|
پردازش تصویر با متلب | Baran15 | ۰ | ۱,۹۴۸ |
۱۷ آبان ۱۳۹۷ ۰۱:۱۵ ق.ظ آخرین ارسال: Baran15 |
|
ماتریس ها در متلب | safoora s | ۱ | ۲,۱۴۸ |
۱۲ مرداد ۱۳۹۷ ۱۲:۲۲ ب.ظ آخرین ارسال: BBumir |
|
کمک در یادگیری شبیه سازی شبکه در متلب | atefe73 | ۲ | ۲,۹۲۳ |
۲۹ تیر ۱۳۹۷ ۰۱:۵۹ ب.ظ آخرین ارسال: The BesT |
|
کمک در یادگیری شبیه سازی شبکه های هوشمند در متلب | atefe73 | ۱ | ۳,۸۱۷ |
۲۵ تیر ۱۳۹۷ ۰۶:۴۸ ب.ظ آخرین ارسال: atefe73 |
|
جایگزین goto در متلب! | αɾια | ۵ | ۱۰,۷۷۲ |
۲۲ تیر ۱۳۹۷ ۰۳:۵۱ ب.ظ آخرین ارسال: Riemann |
|
خطای نتیجه در متلب | The BesT | ۶ | ۴,۸۳۸ |
۲۰ تیر ۱۳۹۷ ۱۰:۳۹ ق.ظ آخرین ارسال: Behnam |
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close