رفتن به مطلب

آستانه گیری با دستور graythresh


ارسال های توصیه شده

سلام من توی پروژم یه تابع دارم که بلوکهای 50 در 50 از تصویر رو میگیره و باید بادستورgraythresh از اون آستانه گیری کنم و هرجا که از استانه بزرگتر بود رو سفید کنه.من کد زیر رو نوشتم ولی نمی دونم الان ماتریش خروجی باید چه جوری باشه؟

 

function feature=extractHist(im)

pic=ones(50,50)*0.1;

 

G=histeq(im);

 

T=graythresh(G);

 

count=zeros(1,10);

 

for i=1:50

for j=1:50

if G(i,j)>T

G(i,j)=255;

 

end

end

end

 

 

feature=????? الان خروجی چی باید باشه؟;

 

end

لینک به دیدگاه
سلام من توی پروژم یه تابع دارم که بلوکهای 50 در 50 از تصویر رو میگیره و باید بادستورgraythresh از اون آستانه گیری کنم و هرجا که از استانه بزرگتر بود رو سفید کنه.من کد زیر رو نوشتم ولی نمی دونم الان ماتریش خروجی باید چه جوری باشه؟

 

function feature=extractHist(im)

pic=ones(50,50)*0.1;

 

G=histeq(im);

 

T=graythresh(G);

 

count=zeros(1,10);

 

for i=1:50

for j=1:50

if G(i,j)>T

G(i,j)=255;

 

end

end

end

 

 

feature=????? الان خروجی چی باید باشه؟;

 

end

 

سلام

سوالتون یه چی دیگه نبود، ولی فکر کنم کاری که می خواین انجام بدین رو متوجه شدم. به نظرم با blockproc بنویسین یا colfilt هم می تونین استفاده کنین که سریع تر هم هست:

 

clear;
img = imread('cameraman.tif');
img2 = blockproc(img,[50 50],@(x)im2bw(x.data,graythresh(x.data)));

figure;
subplot(121)
imshow(img)

subplot(122)
imshow(img2)

لینک به دیدگاه
سلام

سوالتون یه چی دیگه نبود، ولی فکر کنم کاری که می خواین انجام بدین رو متوجه شدم. به نظرم با blockproc بنویسین یا colfilt هم می تونین استفاده کنین که سریع تر هم هست:

 

clear;
img = imread('cameraman.tif');
img2 = blockproc(img,[50 50],@(x)im2bw(x.data,graythresh(x.data)));

figure;
subplot(121)
imshow(img)

subplot(122)
imshow(img2)

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

 

خب اگه می خواین اینشکلی ننویسین، بعد از پیدا کردن آستانه برای هر بلوک:

 

T = graythresh(G);
Output_img = false(50); % logical(zeros(50))

Output_img(G>T) = 1;

 

حلقه نیاز ندارین.

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

 

سلام،

فکر میکنم اگر خروجیه کد خودتون رو هم reshape می کردین چون برای هر پیکسل دارین ویژگی رو استخراج می کنید صحیح بود:

 

r=reshape(G,1,14300);

لینک به دیدگاه
سلام،

فکر میکنم اگر خروجیه کد خودتون رو هم reshape می کردین چون برای هر پیکسل دارین ویژگی رو استخراج می کنید صحیح بود:

 

r=reshape(G,1,14300);

سلام برای خروجی من باید یک بردار از ویژگی های استخراج شده از هر بلاک رو برگردونم. این reshape چکار می کنه؟این 14300 برای چی هست؟ میشه توضیج بدید؟این کد رو بعد از په دستوری بنویسم؟ آیا r رو به خروجی برگردونم؟ من الان کدم رو ایجوری تغییر دادم:function feature=extractHist(im)

G=histeq(im);

 

T=graythresh(G);

 

Output_img = false(50); % logical(zeros(50))

Output_img(G>T) = 1;

 

 

 

feature=output_img;

 

end

خروجی من توسط featureبرگردونده میشه.

لینک به دیدگاه
سلام برای خروجی من باید یک بردار از ویژگی های استخراج شده از هر بلاک رو برگردونم. این reshape چکار می کنه؟این 14300 برای چی هست؟ میشه توضیج بدید؟این کد رو بعد از په دستوری بنویسم؟ آیا r رو به خروجی برگردونم؟ من الان کدم رو ایجوری تغییر دادم:function feature=extractHist(im)

G=histeq(im);

 

T=graythresh(G);

 

Output_img = false(50); % logical(zeros(50))

Output_img(G>T) = 1;

 

 

 

feature=output_img;

 

end

خروجی من توسط featureبرگردونده میشه.

 

از هر بلاک به تعداد پیکسل های اون بلاک 50 * 50 تا ویژگی دارین، زیاد نیست؟

منظورشون این بود باید به بردار تبدیلش کنین، اگه می خواین به عنوان ویژگی استفاده کنین، reshape هم شکل ماتریس رو عوض می کنه، مثلا یه ماتریس 4 در 4 رو می تونیم به کمکش به 8 در 2 یا 16 در 1، ابعادی که به تعداد درایه های ماتریس بخوره تبدیل کنیم.

 

چجوری می خواین ویژگی استخراج کنین، از هر بلاک؟

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...