عباس خدائیان
عباس خدائیان
خواندن ۲ دقیقه·۲ سال پیش

چسباندن دو عکس به یکدیگر در متلب

امروز راجع به برش دو تصویر از وسط و چسباندن آنها به یکدیگر به گونه ای که نیمه چپ تصویر اول به نیمه راست تصویر دوم بچسبد در متلب میگویم.

نمونه تصاویر ساخته شده به این صورت را در زیر مشاهده میکنید:

چسباندن دو تصویر در متلب
چسباندن دو تصویر در متلب

به این منظور توسط دستور imread تصویر اول و دوم را خوانده و هر یک را در متغیر جداگانه ای نگهدای میکنیم.

سپس مقدار اندازه تصویر اول را بر 2 تقسیم و به سمت پایین گرد کرده و در متغیر n1 ذخیره میکنیم.

n1 = floor(size(x1)/2);

در اينجا دستور size اندازه تصوير را به صورت يك ماتريس m x n به ما ميدهد و وقتي آن را بر 2 تقسيم ميكنيم مقادير اين ماتريس نصف خواهد شد و چناچه در هنگام نصف شدن مقادير، عدد اعشاري حاصل شود، توسط دستور floor آن را به پايين رند ميكنيم.

اندازه تصویر اول را در متغیر m2 ذخیره میکنیم. لازم به ذکر است که اندازه تصویر یک ماتریس m x n می باشد که m تعداد ردیف های آن و n تعداد ستون های آن می باشد.

m1 = size(x1);

همین عملیات را برای تصویر دوم هم انجام میدهیم.

n2 = floor(size(x2)/2); m2 = size(x2);

قسمت چپ تصویر نهایی قرار است از بخش اول تصویر اول ساخته شود. به این صورت که چنانچه فرض کنیم تصویر را از وسط توسط دستورات بالا تا زدیم، قسمت چپ این تصویر را در متغیر Lpic نگداری میکنیم:

Lpic = x1(:,1:n1(2),:);

برای بخش راست تصویر نهایی هم از قسمت راستی تصویر دوم چنانچه از وسط آن را تا کنیم استفاده میکنیم و آن را در متغیر Rpic‌ نگهداری میکنیم.

Rpic = x2(:,n2(2)+1:m2(2),:);

در نهايت هر يك از تصاوير جديد را نمايش توسط دستور imshow در يك پنجره جديد نمايش ميدهيم.

figure, imshow(Lpic); figure, imshow(Rpic);

براي چسباندن تصاوير چپ و راست ساخته شده به روش بالا از دستورات imshowpair به شكل زير استفاده ميكنيم.

figure, imshowpair(Lpic,Rpic,'montage')

تصوير نهايي را در ابتداي نوشته ميتوانيد مجددا مشاهده كنيد.

كد كامل به شرح زير است:

close all; clear all; clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%% x1 = imread('1.tif'); figure, imshow(x1); x2 = imread('2.tif'); figure, imshow(x2); %%%%%%%%%%%%%%%%%%%%%%%%%%%% n1 = floor(size(x1)/2); m1 = size(x1); n2 = floor(size(x2)/2); m2 = size(x2); %%%%%%%%%%%%%%%%%%%%%%%%%%%% Lpic = x1(:,1:n1(2),:); Rpic = x2(:,n2(2)+1:m2(2),:); %%%%%%%%%%%%%%%%%%%%%%%%%%%% figure, imshow(Lpic); figure, imshow(Rpic); figure, imshowpair(Lpic,Rpic,'montage')


متلبimshowpairmontageنرم افزار متلبتصویر
شاید از این پست‌ها خوشتان بیاید