【发布时间】:2013-08-05 19:07:18
【问题描述】:
我有一个程序可以每 1 秒打印一次屏幕截图,但是在屏幕截图过程中,当屏幕包含黑暗图片时,存储的图像包含大量噪音。
谁能告诉我如何减少这些快照图像中的噪声内容。
以下代码用于截屏。
public class Beginning implements Runnable {
private Thread thread;
private static long counter = 0;
private final int FRAME_CAPTURE_RATE = 1000;
private Robot robot;
public Beginning() throws Exception {
robot = new Robot();
thread = new Thread(this);
thread.start();
}
public static void main(String[] args) throws Exception {
Beginning beginning = new Beginning();
}
public void run() {
for (;;) {
try {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage bufferedImage = robot.createScreenCapture(screenRect);
ImageIO.write(bufferedImage, "png", new File("D:\\CapturedFrame\\toolImage" + counter + ".png"));
counter++;
thread.sleep(FRAME_CAPTURE_RATE);
} catch (Exception e) {
System.err.println("Something fishy is going on...");
}
}
}
}
还告诉我,如果不在屏幕上播放视频,我怎么能做到这一点,这意味着我只需要给出视频的位置,然后我的程序就会从中捕获帧并从中去除噪音,然后将其保存在 指定位置。
【问题讨论】:
-
对我来说似乎工作正常,可以提供一些示例和预期的输出图像吗?
-
@MadProgrammer,当然,我正在播放一段黑暗的视频,然后从中捕捉图像,这是一个包含噪音的简单快照的链接 (dropbox.com/s/a1pyj68aifevr7x/toolImage2.png)
-
@user2320537 - 那么预期的(不嘈杂的)图像是什么样的?
-
@StephenC,这是我的文件,请拿走这个 (dropbox.com/s/a1pyj68aifevr7x/toolImage2.png)
-
我看到了。现在请向我们展示 NON-NOISY 图像的样子。