موقعیت گذاری ابزارهای ماژولار در متلب

چاپ

هنگامی که شما ابزارهای ماژولار را ایجاد می کنید، موقعیت این ابزارها به طور پیش فرض تعیین می شود. بعنوان مثال تابع impixelinfo باعث می شود تا ابزار اطلاعات پیکسلی در گوشه ی پایین و سمت چپ از جعبه ی عکس ظاهر شود. به دلیل اینکه ابزارهای ماژولار ما استاندارد هستند، شما می توانید از خاصیت های این اشیاء استفاده کنید تا موقعیت پیش فرض یا دیگر مشخصات آنها را تغییر دهید. بعنوان مثال در مقاله ی قبلی در مبحث " مشخص کردن والد یک ابزار ماژولار" هنگامی که ابزار Pixel Region را به جعبه ی عکس از عکس هدف اضافه کردیم، مثال ما عکس و ابزار Pixel Region را در داخل یک جعبه ی عکس به ما نشان داد. 

 


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

 برای مشخص کردن موقعیت یک ابزار ماژولار یا دیگر اشیاء گرافیکی کافیست مقدار خاصیت Position از آن شیء را تنظیم کنید. برای تعیین مقدار این خصوصیت، می توانید از یک بردار چهار عنصری به صورت \([left\quad bottom\quad width\quad height]\) استفاده کنید، به طوری که left و bottom مشخص کننده ی فاصله از گوشه ی پایین و سمت چپ جعبه ی عکس هستند و width و height مشخص کننده ی ابعاد آن شیء هستند. 

 هنگامی که شما از یک بردار موقعیت دهی استفاده می کنید، می توانید با تنظیم خاصیت Units از آن شیء واحد اندازه گیری را تعیین کنید. برای اینکه امکان تغییر اندازه را بهبود ببخشید، بهتر است برای خاصیت Units از مقدار normalized  استفاده کنید زیرا موقعیت را بصورت نسبی تنظیم می کند و نه همچون واحد پیکسل بطور مطلق. 

 بعنوان مثال، هنگامی که شما ابتدا ابزار Pixel Region را به یک جعبه ی عکس اضافه می کنید، این ابزار تمامی محیط جعبه ی عکس را اشغال می کند زیرا به طور پیش فرض بردار موقعیت ما بصورت \([0\quad 0\quad 1\quad 1]\) با واحدهای نرمال  تنظیم شده است. این بردار موقعیت دهی، به ابزار ماژولار می گوید که خودش را با گوشه ی پایین و سمت چپ تنظیم کند و تمام شیء ای که در داخل آن قرار گرفته است را بپوشاند. 

 برای جا دادن عکس مورد نظر و ابزار Pixel Information و ابزار Display Range موقعیت ابزار Pixel Region را در نیمه پایین جعبه ی عکس قرار دهید، و در پایین فضایی را برای ابزار Pixel Information و ابزار Display Range اختصاص دهید. در زیر می توانید بردار موقعیت دهی برای ابزار Pixel Region را مشاهده کنید: 

مثال (موقعیت گذاری ابزارهای ماژولار در متلب)

set(hpixreg, 'Units','normalized','Position',[0 .08 1 .4])

 برای منطبق کردن ابزار Pixel Region با عکس هدف، به طوری که این عکس در بالای این ابزار قرار گیرد، عکس هدف را با استفاده از بردار موقعیت زیر،  دوباره موقعیت دهی کنید. کاری که باید انجام دهید این است که خاصیت Position را برای شیء محوری که این عکس را دربر دارد تنظیم کنید زیرا عکس ها خود دارای خاصیت Position نیستند. 

مثال (موقعیت گذاری ابزارهای ماژولار در متلب)

set(hax,'Units','normalized','Position',[0 0.5 1 0.5])

 مثال: ایجاد محیط گرافیکی برای ابزار Pixel Information

این مثال نشان می دهد که چطور می توانیم از ابزارها استفاده کنیم تا یک محیط گرافیکی ایجاد کنیم که حاوی ابزارهای اطلاعات پیکسلی  و یک عکس باشد. این محیط گرافیکی، یک عکس را نمایش می دهد و حاوی ابزار های زیر است:

  1.  ابزار Display Range
  2. ابزار Distance
  3. ابزار Pixel Information
  4. پنل ابزار Pixel Region

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

 

مثال (موقعیت گذاری ابزارهای ماژولار در متلب)

function my_pixinfotool(im)
% Create figure, setting up properties
hfig = figure('Toolbar','none',...
'Menubar', 'none',...
'Name','My Pixel Info Tool',...
'NumberTitle','off',...
'IntegerHandle','off');
% Create axes and reposition the axes
% to accommodate the Pixel Region tool panel
hax = axes('Units','normalized',...
'Position',[0 .5 1 .5]);
% Display image in the axes and get a handle to the image
himage = imshow(im);
% Add Distance tool, specifying axes as parent
hdist = imdistline(hax);
% Add Pixel Information tool, specifying image as parent
hpixinfo = impixelinfo(himage);
% Add Display Range tool, specifying image as parent
hdrange = imdisplayrange(himage);
% Add Pixel Region tool panel, specifying figure as parent
% and image as target
hpixreg = impixelregionpanel(hfig,himage);
% Reposition the Pixel Region tool to fit in the figure
% window, leaving room for the Pixel Information and
% Display Range tools.
set(hpixreg, 'units','normalized','position',[0 .08 1 .4])

 برای استفاده از این ابزار، به تابع بالا یک عکس را انتساب می دهیم:

مثال (موقعیت گذاری ابزارهای ماژولار در متلب)

pout = imread('pout.tif');
my_pixinfotool(pout)

 این ابزار(تابع) یک جعبه ی عکس را باز می کند، و عکس مورد نظر را در نیمه ی بالایی نمایش می دهد. همچنین ابزار Distance هم بر روی عکس نمایش داده شده است. و ابزارهای Pixel Information و Display Range و Pixel Region در نیمه ی پایین جعبه ی عکس قرار دارند.