Matlab GUI 获取窗口位置

这段MATLAB代码创建了一个停靠图形窗口,并获取了其在桌面环境中的位置和尺寸信息,包括宽度、高度、X和Y原点坐标。

Global Position of Docked Figures window - MATLAB Answers - MATLAB Central

% create a dock figure
fig = figure;
set(fig,'WindowStyle','docked')
get(fig,'Position')

% get the Figure editor    
desktop   = com.mathworks.mde.desk.MLDesktop.getInstance;
container = desktop.getGroupContainer('Figures').getTopLevelAncestor;

% get the dimensions
width  = get(container.getSize,'width');
height = get(container.getSize,'height');

% get the origin
Location = get(container.getAccessibleContext,'Location');
Xorigin  = get(Location,'X');
Yorigin  = get(Location,'Y');

% display
disp([Xorigin Yorigin width height])

### 回答1: 在MATLAB GUI中获得鼠标位置的像素值,可以通过以下几个步骤实现: 1. 首先,在GUI界面上创建一个Axes对象。 2. 然后,在Axes对象的ButtonDownFcn回调函数中添加以下代码: currentPosition=get(gca,'CurrentPoint'); x=round(currentPosition(1,1)); y=round(currentPosition(1,2)); pixelValue=getappdata(handles.figure1,'pixelValue'); set(pixelValue,'String',['Pixel Value = ' num2str(I(y,x))]); 其中,gca函数获取当前坐标轴的句柄,get指令获取当前鼠标位置的坐标,round函数将其转换为整数。pixelValue是用来显示鼠标位置像素值的文本框对象,handles.figure1是GUI界面的句柄。I是图像矩阵,根据需要进行修改。 3. 最后,在GUI创建函数中新建一个文本框对象,用于显示鼠标位置像素值,命名为pixelValue,并将其句柄添加到GUI界面的appdata中,代码如下: pixelValue = uicontrol('Style','text','Position',[500,90,130,20],'HorizontalAlignment','left','Parent',handles.panel1); setappdata(handles.figure1,'pixelValue',pixelValue); 其中,uicontrol函数用于创建GUI界面上的控件,Position参数指定其在GUI界面中的位置和大小,HorizontalAlignment参数指定文本左对齐,Parent参数指定其所属的面板,handles.panel1是GUI界面中的面板对象,根据需要进行修改。 以上就是在MATLAB GUI中获得鼠标位置的像素值的详细步骤。 ### 回答2: 在MATLAB GUI中,要获得鼠标位置的像素值,可以使用如下代码: 1. 在GUI中创建一个Axes对象,用于显示图像。 2. 给Axes对象添加一个ButtonDownFcn回调函数,用于获取鼠标点击位置的像素值。 3. 在回调函数中使用get函数获取Axes对象的CurrentPoint属性,该属性返回一个2×3的矩阵,表示当前鼠标位置在坐标系中的信息。 4. 利用ceil函数对CurrentPoint属性进行取整,得到鼠标位置在坐标系中的整数坐标。 5. 利用imread函数读取图像,并根据鼠标位置在坐标系中的整数坐标,获取该点的像素值。 下面是示例代码: % 在GUI中创建一个Axes对象 axes(handles.axes1); % 给Axes对象添加一个ButtonDwonFcn回调函数 set(handles.axes1,'ButtonDownFcn',@axes1_ButtonDownFcn); function axes1_ButtonDownFcn(hObject, eventdata, handles) % 获取鼠标位置的像素值 currentPoint = get(hObject,'CurrentPoint'); row = ceil(currentPoint(1,2)); % 行 col = ceil(currentPoint(1,1)); % 列 imageData = imread('image.png'); % 读取图像 pixelValue = imageData(row,col); % 获取像素值 % 在命令窗口输出像素值 disp(['Pixel value: ', num2str(pixelValue)]); end 以上代码中,获取图像的方法是使用imread函数读取保存在当前路径下名为image.png的图像。如需获取其他图像的像素值,只需将该函数的参数替换为相应的图像文件名即可。 ### 回答3: 在matlab gui获取鼠标位置的像素值,需要使用鼠标事件响应函数。首先,我们需要定义一个画布(图像显示区域),通过imshow函数显示一张图像。然后,定义一个鼠标事件响应函数,通过get函数获取鼠标当前位置的像素值。具体步骤如下: 1. 定义画布并显示图像: ``` % 定义画布 hFig = figure; hAxes = axes('Parent',hFig); % 显示图像 img = imread('example.jpg'); imshow(img,'Parent',hAxes); ``` 2. 定义鼠标事件响应函数: ``` % 鼠标事件响应函数 function MouseClickCallback(hObject,eventdata) % 获取鼠标位置 C = get (hAxes, 'CurrentPoint'); x = round(C(1,1)); y = round(C(1,2)); % 获取像素值 pixelValue = impixel(img,x,y); % 在命令窗口中显示像素值 disp(['像素坐标:(',num2str(x),',',num2str(y),')',' 像素值:',num2str(pixelValue)]); end ``` 3. 注册鼠标事件响应函数: ``` % 注册鼠标事件响应函数 set(hFig,'WindowButtonDownFcn',@MouseClickCallback); ``` 以上步骤完成之后,当用户点击画布上的任何一点时,鼠标事件响应函数会自动调用,通过get函数获取当前鼠标位置的像素值,并在命令窗口中显示。需要注意的是,对于彩色图像,返回的像素值是一个1×3的向量,分别表示RGB三个通道的值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值