2016-02-19 4 views
0

Кажется, не существует способа показать полный экран изображения с помощью Matlab на Win8 64. Таким образом, я нашел решение где-то с использованием java-класса, то есть javax.swing. JFrame. Я не знаю java и больше, я не могу использовать команду Matlab для полного изображения на Java. Моя цель - получить позицию курсора мыши на этом изображении. Вот мой код:Получить положение мыши на полноэкранном java-изображении с помощью matlab

import java.awt.event.MouseEvent.*; %I tried also java.awt.event.* without results 
import java.awt.Robot; %It doesn't seems to be useful 

img=imread("my_image.tif"); 
jimg = im2java(img); 
frame = javax.swing.JFrame; 

mouse=java.awt.event.MouseEvent; %here it doesn't work, the same if mouse=java.awt.event; 

frame.setUndecorated(true); 
icon = javax.swing.ImageIcon(jimg); 
label = javax.swing.JLabel(icon); 
frame.getContentPane.add(label); 
frame.pack; 
screenSize = get(0,'ScreenSize'); 
frame.setSize(screenSize(3),screenSize(4)); 
frame.setLocation(0,0); 
frame.show; 

%what I need to make run but with the above definition it doesn't work 
if mouse.getButton() 
    [x,y]=mouse.getPoint(); 
end 

Я попробовал тупо ginput но создает другую фигуру. Этот код правильно показывает полное изображение на экране, но события о том, где я нажимаю, нет. Matlab возвращает сообщение об ошибке mouse = java.awt.event.MouseEvent; определение. Он сообщает: Неопределенная переменная «java» или класс «java.awt.event». Проблема заключается в импортированных классах Java, и, возможно, как я их использовал. Как я могу решить? Я нахожусь везде, но я не нашел практического решения. Не могли бы вы предложить любое другое решение, также без использования java?

+0

Какие номера версий для Java и Matlab вернут 'ver'? Это действительно сообщение об ошибке, которое вы получаете при запуске кода выше? Я получаю другой! – Daniel

+0

Я получаю: 'MATLAB Версия: 8.6.0.26 **** (R2015b) Номер лицензии MATLAB: ******** Операционная система: Microsoft Windows 8.1 Pro N Версия 6.3 (Build 9600) Версия Java: Java 1.7.0_60-b19 с Oracle Corporation Java HotSpot (TM) 64-разрядный сервер VM смешанный режим' – SPS

+0

Тогда я уверен, что вы не получили сообщение об ошибке, которое вы вставили с кодом, который вы вставили здесь! – Daniel

ответ

0

Просто я должен использовать команду:

[A]=get(0,'PointerLocation') 

и в матрице А я получаю позицию указателя везде на экране, а также на Java кадра изображения.

+0

Теперь я должен получить событие мыши. Руководство по интеграции кода C++ в Matlab? – SPS

Смежные вопросы