使用 Java2D 对 ROI 进行图像过滤

发布于 2024-10-17 15:37:55 字数 99 浏览 5 评论 0原文

我想在用户选择的感兴趣区域上应用一些过滤器[图像过滤器]。

我需要 API 来获取该区域的像素 [多边形或手绘矩形] 并应用

过滤器。对此工作有何建议?

i want apply some filters [image filter] on Region Of Interest that user selected.

i need API for getting pixels of this area [polygon or freehand also Rectangle] and apply

filter.any Suggestion for this work ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扭转时空 2024-10-24 15:37:55

基本上,您需要做的是:

  1. 创建一个 BufferedImage 并将其与 Graphics 对象链接
  2. 设置剪切区域
  3. 绘制到此 Graphics 对象
  4. 在 BufferedImage 对象上应用过滤器

在伪代码中:

private BufferedImage bufferedImage = new BufferedImage()
private Graphics2D graphics = bufferedImage.createGraphics()

void paint(Graphics2D input) {
    graphics.clip(selectionArea.getShape())
    upperCanvas.paint(graphics)

    BufferedImageOp op
    bufferedImage = op.filter(bufferedImage, new BufferedImage())

    input.drawImage(bufferedImage)
}

要应用过滤器,请参阅 java.awt.image

如您所见,这个可以在java2d中完成,但是API相当复杂。如果您有兴趣,我可以建议用纸浆核心作为替代框架。它包括几个预定义过滤器和一个用于应用它们的单行 API。请参阅演示。还包括一个 Java2DSprite 类,用于在pullcore 和java2d 之间轻松移植。

Basically, what you need to do is:

  1. Create a BufferedImage and link it with a Graphics object
  2. Set clipping region
  3. Draw to this Graphics object
  4. Apply filter on the BufferedImage object

In pseudocode:

private BufferedImage bufferedImage = new BufferedImage()
private Graphics2D graphics = bufferedImage.createGraphics()

void paint(Graphics2D input) {
    graphics.clip(selectionArea.getShape())
    upperCanvas.paint(graphics)

    BufferedImageOp op
    bufferedImage = op.filter(bufferedImage, new BufferedImage())

    input.drawImage(bufferedImage)
}

For applying filter, see java.awt.image

As you can see, this can be done in java2d, but the API is quite complicated. If you're interested I can suggest pulpcore as a replacement framework. It includes several predefine filters and a one-line-API for apply them. See demo. Also includes a Java2DSprite class for easy porting between pulpcore and java2d.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文