- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我想我问了一个新问题,这是我的旧问题的延伸。因此,我能够将 ImageJ 窗口中的内容放入桌面 Pane 内的 JInternal 框架中。但图像不会随着帧尺寸的放大而缩放。我发现了几种主要使用 ImageJ 中的缩放类的方法,但它不会缩放以适应框架。所以我想知道是否有人知道我做错了什么。放大可以工作,缩小也可以,但是缩放和缩放的设置不起作用,我不知道为什么。预先感谢。
这是我的代码的一部分:
public class CustomGui extends ImageWindow implements InternalFrameListener, ComponentListener, ActionListener{
public CustomGui(ImagePlus imp, String title, JDesktopPane desktop, final JMenuItem save, JWindow win, JMenuItem fft) {
super(imp);
// TODO Auto-generated constructor stub
setCall();
img = imp;
save.setEnabled(true);
fft.setEnabled(true);
//this.title = title;
this.win = win;
this.fft = fft;
this.save = save;
JPanel panel = new JPanel();
ImageCanvas c = new ImageCanvas(imp);
c.getImage();
//panel2.add(new JLabel(new ImageIcon(c.getImage())));
m = new ImageWindow(img);
Image n = new Image();
frame = new MyInternalFrame(title, img, save,m);
//ImageCanvas c = m.getCanvas();
ImagePlus im = new ImagePlus();
im.setImage(img);
//ImageRoi roi = ImageRoi();
//panel.add(c);
// frame.add(m.getContentPane());
m.centerNextImage();
//This is where I try to use the zoom class.
img.getCanvas().setScaleToFit(true);
//ImageCanvas nu = new ImageCanvas(img);
//nu.setScaleToFit(true);
//I set arg to "scale" but it doesn't work, even when I put it in component resized listener.
Zoom z = new Zoom(img);
String arg = "orig";
z.run(arg);
//m.setLocationRelativeTo(frame);
//m.setLocationAndSize(true);
//m.setLocationAndSize(frame.getWidth(), frame.getHeight(), frame.getWidth(), frame.getHeight());
panel.add(m.getCanvas());
panel.setBackground(Color.white);
frame.add(panel);
frame.setVisible(true);
frame.setAutoscrolls(true);
frame.setAutoscrolls(true);
desktop.add(frame);
try {
frame.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
}
frame.addInternalFrameListener(this);
frame.addComponentListener(this);
//win.add(desktop);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals(SHOW)){
save.setEnabled(true);
frame.addInternalFrameListener(this);
}
System.out.println("beingg called");
}
public void setCall(){
called = true;
}
public void setCallF(){
called = false;
}
public boolean getCall(){
return called;
}
//This is where the internal frame is resized.
@Override
public void componentResized(ComponentEvent arg0) {
// TODO Auto-generated method stub
Rectangle r = frame.getBounds();
// int h = (int) r.getHeight();
// int w = (int) r.getWidth();
// m.resize(w, h);
//m.getCanvas().unzoom();
//m.setLocationAndSize((int)r.getWidth(), (int)r.getHeight(), (int)r.getWidth(), (int)r.getHeight());
m.getCanvas().fitToWindow(r);
System.out.println("resized- the real one");
}
@Override
public void componentShown(ComponentEvent arg0) {
// TODO Auto-generated method stub
frame.show();
}
}
我还向 Zoom 类添加了一个构造函数(这是 Zoom 类的一部分):
/** This plugin implements the commands in the Image/Zoom submenu. */
public class Zoom implements PlugIn{
ImagePlus imp;
public Zoom (ImagePlus img){
imp = img;
}
public void run(String arg) {
//ImagePlus imp = WindowManager.getCurrentImage();
//ImagePlus imp = img;
if (imp==null)
{IJ.noImage(); return;}
ImageCanvas ic = imp.getCanvas();
if (ic==null) return;
Point loc = ic.getCursorLoc();
if (!ic.cursorOverImage()) {
Rectangle srcRect = ic.getSrcRect();
loc.x = srcRect.x + srcRect.width/2;
loc.y = srcRect.y + srcRect.height/2;
}
int x = ic.screenX(loc.x);
int y = ic.screenY(loc.y);
if (arg.equals("in")) {
ic.zoomIn(x, y);
if (ic.getMagnification()<=1.0) imp.repaintWindow();
} else if (arg.equals("out")) {
ic.zoomOut(x, y);
if (ic.getMagnification()<1.0) imp.repaintWindow();
} else if (arg.equals("orig"))
ic.unzoom();
else if (arg.equals("100%"))
ic.zoom100Percent();
else if (arg.equals("to"))
zoomToSelection(imp, ic);
else if (arg.equals("set"))
setZoom(imp, ic);
else if (arg.equals("max")) {
ImageWindow win = imp.getWindow();
win.setBounds(win.getMaximumBounds());
win.maximize();
} if (arg.equals("scale"))
scaleToFit(imp);
}
最佳答案
在 Zoom.java
,我没有看到任何构造函数接受参数。您确定要导入并使用 ij.plugin.Zoom
?
标准 ImageJ GUI 允许使用 ij.plugin.Zoom 类进行缩放。在 Fiji's script editor 中运行以下 JavaScript 片段在正常和缩放以适应模式之间切换:
zm = new Zoom();
zm.run("scale");
ImageJ 主窗口的状态栏(以及 Zoom.java
的源代码)还提供了提示,在调整窗口大小时按 alt 将显示图像缩放到窗口大小。
抱歉,我没有花时间摆弄您的代码:它并不是真正的 minimal example .
关于java - 如何使图像相对于其框架缩放(ImageJ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699949/
我在 fiji/imagej 中制作了一个宏,我想通过终端在 shell 脚本中激活它。就目前而言,宏不需要任何输入,我只想让斐济在从终端激活时运行宏,并将其输出保存在输出文件夹中。宏的脚本如下所示:
我在使用 ImageJ 宏时遇到问题。函数 selectImage(id) 和 selectWindow(name) 导致 ImageJ 完全崩溃,甚至我必须完全重置 Unity(我使用的是 Ubun
在我的代码中使用外部库时,我非常新手。我一直在寻找如何将这个特定的库实际添加到我的构建路径中,这令人尴尬。 我的主要问题是我找不到 .jar 文件,或者我不知道如何从克隆的 git 存储库转到 jar
问题的逆向是: 如何从 ImageJ 宏调用/执行 java 程序? 每当我写 imagej 时,我指的是斐济。 当然,一个简单的解决方案是从 java 字符串创建一个 .ijm 并使用以 .ijm
我在 ImageJ 中编写了一个宏来在 BMP 图像文件列表上运行批量“测量”。我正在使用 headless.jar 以 headless 模式在远程 linux 机器上运行代码。 每当 ImageJ
在我正在编写的宏中,我尝试使用以下结构从插件导出结果: savePath = newfolder+"\\"+fileid; run("Export results", "filepath=savePa
问题:稳定一堆图像 问题:如何在没有关键点检测的情况下执行图像稳定?有什么办法吗? 我试过这个: http://www.cs.cmu.edu/~kangli/code/Image_Stabilizer
我正在开发一个用于压缩图像的插件。在“奇迹发生”之前,用户应该决定是否要使用具有三个或四个邻居的方法。为此,我创建了一个带有 RadioButtonGroup 的通用对话框。 这工作正常,我的问题是如
我在 Windows 上使用 Fiji/ImageJ 并遇到以下问题:当我关闭文件时,为该文件分配的内存未释放。 ImageJ 保留分配的内存,并在打开其他文件时重用它。 所以这并不是严格意义上的内存
我正在 Java 中使用 IJ 库。我打开了几张图像,我想保存最后一张 Activity 图像。但是,我只保存最后打开的图像而不是最后一个 Activity 图像。有什么解决办法吗? ImagePlu
我希望能够将图像校准到物理距离,以便我可以将图像裁剪到物理距离,而不是给出要裁剪的像素数。我已经在 ImageJ API 中看到了 Calibration 类,我可以设置校准来设置像素尺寸并通过设置
请问,怎样才能使图像透明? 实际上,我尝试从 IndexColorModel 读取 RGB 值 ImageProcessor ip1 = img1.getProcessor(); IndexColor
当我尝试使用 ImageJ 运行图片分析并尝试计算孔隙率时,出现了问题。 我记录了宏并在 java 中运行相同的过程。这两次执行的结果不同,我不知道为什么。你能帮忙吗? 我尝试使用 ImageJ AP
我正在使用 ImageJ 进行类(class)的图像处理,并且我已经创建小插件几个星期了。这让我很沮丧,因为我从未见过任何 java 错误消息,例如第 3 行的语法错误等等。当我的插件无法编译(由于某
我正在尝试构建一个简单的java应用程序,它可以对粒子进行计数,然后显示它们的数量。我正在使用 imagej (ij.jar) 库,一切都很完美,直到应该显示带有结果的小框。有人可以向我解释一下我该如
我的程序遇到了一个小问题,因为它似乎无法找到直方图中的最高值来计算直方图应该的比例,所以现在整个直方图超出了范围 我真的希望有人能帮助我,因为这让我发疯 import ij.*; import ij.
所以我想我问了一个新问题,这是我的旧问题的延伸。因此,我能够将 ImageJ 窗口中的内容放入桌面 Pane 内的 JInternal 框架中。但图像不会随着帧尺寸的放大而缩放。我发现了几种主要使用
我已经下载了ImageJ源代码并编译并运行了ImageJ源代码。我按照签名制作了 ij.jar。但是,当我尝试在网页中嵌入 ImageJ 小程序时,图像窗口将作为弹出窗口出现,而不是粘在浏览器上。 非
我正在 ImageJ 插件中使用“减去背景”操作,并且尝试使用 BackgroundSubtracter 类来执行此操作,但结果与使用宏语句时的结果不同。例如: IJ.run(img, "Subtra
给定两个 ImagePlus 或 BufferedImages(我不在乎)我如何匹配第一个与第二个的直方图? 我所说的匹配是指: 匹配一个的累积分布函数(CDF)图像到另一个的 CDF。 最佳答案 您
我是一名优秀的程序员,十分优秀!