رفتن به مطلب

چگونه می توانیم یک تصویر تغییر یافته را در matlabذخیره کنیم؟


nimaha72

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

سلام و خسته نباشید:

من یک تصویر رنگی 512*512 دارم. و می خواهم روی آن یک مربع بکشم و از دستور زیر استفاده کرده ام

im = imread ('image.tif');
imshow(im)
rectangle('Position', [100, 100, 10, 10])
imwrite (im, 'image2.tif')

اما زمانی که با دستور imwrite آن را ذخیره می کنم مستطیل کشیده شده روی تصویر دیده نمی شود چگونه می توانم تصویری که روی آن مربع کشیده ام را به صورت تصویر ذخیره کنم؟

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

سلام و خسته نباشید:

من یک تصویر رنگی 512*512 دارم. و می خواهم روی آن یک مربع بکشم و از دستور زیر استفاده کرده ام

im = imread ('image.tif');
imshow(im)
rectangle('Position', [100, 100, 10, 10])
imwrite (im, 'image2.tif')

اما زمانی که با دستور imwrite آن را ذخیره می کنم مستطیل کشیده شده روی تصویر دیده نمی شود چگونه می توانم تصویری که روی آن مربع کشیده ام را به صورت تصویر ذخیره کنم؟

 

 

سلام دوست عزیز

اینجا فقط میاد یه مربع روی تصویر نمایش داده شده رسم می کنه، تصویرتون که تغییری نمی کنه.

مثلا این شکلی می تونین همون مستطیل رو با عرض خطها یه پیکسل روی تصویرتون داشته باشین:

 

im = imread('peppers.png');
im(100:110,[100 110],:) = 0;
im([100 110],100:110,:) = 0;
imshow(im)
imwrite (im,'image2.tif')

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

حال اگر بخواهیم اشکال دیگری مثل خط و دایره و منحنی و...رسم کنیم و آن را روی تصویر ذخیره کنیم به طوری که روی تصویر ذخیره شده باقی بماند چه کار انجام دهیم؟

لینک به دیدگاه
حال اگر بخواهیم اشکال دیگری مثل خط و دایره و منحنی و...رسم کنیم و آن را روی تصویر ذخیره کنیم به طوری که روی تصویر ذخیره شده باقی بماند چه کار انجام دهیم؟

 

مثلا دایره این شکلی میشه:

 

yh46yvthqybvsyu0zqqe.png

 

clear;
im = imread('peppers.png');
figure;
set(gcf,'Position',get(0,'ScreenSize'));
subplot(131)
imshow(im)

[r,c,~] = size(im);
x0 = 150;
y0 = 80;
r0 = 50;
[x,y] = meshgrid(1:c,1:r);
r = sqrt((x - x0).^2 + (y - y0).^2);
bw = r>=(r0-1) & r<=(r0+1);
subplot(132)
imshow(bw)

im(repmat(bw,[1 1 3])) = 0;
subplot(133)
imshow(im)
imwrite (im,'image2.tif')

لینک به دیدگاه
حال اگر بخواهیم دایره ای با رنگ قرمز ایجاد کنیم چه کار باید کرد؟

 

اینجوری نوشتم هر رنگی بهش می تونی بدی:

 

clear;
im = imread('peppers.png');
figure;
set(gcf,'Position',get(0,'ScreenSize'));
subplot(131)
imshow(im)

[r1,c1,~] = size(im);
x0 = 150;
y0 = 80;
r0 = 50;
[x,y] = meshgrid(1:c1,1:r1);
r = sqrt((x - x0).^2 + (y - y0).^2);
bw = r>=(r0-1) & r<=(r0+1);
subplot(132)
imshow(bw)

idx = find(bw);
im(idx) = 255;
im(idx + r1*c1) = 0;
im(idx + 2*r1*c1) = 0;


subplot(133)
imshow(im)
imwrite (im,'image2.tif')

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

idx = find(bw);

im(idx) = 255;

im(idx + r1*c1) = 0;

im(idx + 2*r1*c1) = 0;

 

قرمز چی میشه، [0 0 255]، با find آدرس ها رو پیدا کردم، البته آدرس خطی، اون سه خط آخر هر کدوم مربوط به یکی از مولفه های r و g و b تصویر مربوط میشه.

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

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

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

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

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

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

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

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

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

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