java如何处理锯齿_java – 平滑锯齿的路径

这篇博客探讨了如何使用Java处理图像轮廓,特别是如何减少或消除锯齿。通过构建GeneralPath,创建Area并应用特定过滤器,作者展示了如何从源图像中获取平滑的轮廓。博客中还提供了示例代码,演示了如何实现这一过程。
摘要由CSDN通过智能技术生成

我在另一天参加了线程

Image/Graphic into a Shape,并通过向“区域”中迭代地添加一个矩形,并尝试获取图像的轮廓.那很慢

该示例代替构建GeneralPath并从GP创建区域.快多了.

左上角的图像是“源图像”.右边的两个是处理轮廓的各个阶段.它们都在圆周和锯齿状的三角形的边缘上有锯齿状的边缘.

我想获得一个去除或减少锯齿状的形状.

在ASCII艺术

情况1:

1234

1 **

2 **

3 ***

4 ***

5 ****

6 ****

角落在:

(2,3)内角

>(3,3)

(3,5)内角

>(4,5)

情况2:

1234

1 ****

2 ****

3 **

4 **

5 ****

6 ****

角落在:

>(4,2)

>(2,2)内角

>(2,5)内角

>(4,5)

假设我们的路径具有所示的形状,以及列出的点,我想放下第一组的“内角”点,同时保留内部角的“对”(图像中的一个点),用于第2位.

>有人可以建议一些聪明的内置方法来解除这个工作吗?

>如果不这样做,确定位置和方法是一个好办法自然(对/单)内角? (我猜我可以得到一个PathIterator,并建立一个新的GeneralPath,抛出单一的内在角落 – 如果只有我可以弄清楚如何识别它们!

这里是要玩的代码:

import java.awt.*;

import java.awt.event.*;

import java.awt.image.*;

import java.awt.geom.*;

import javax.swing.*;

import javax.swing.border.*;

import javax.swing.event.*;

/* Gain the outline of an image for further processing. */

class ImageOutline {

private BufferedImage image;

private TwoToneImageFilter twoToneFilter;

private BufferedImage imageTwoTone;

private JLabel labelTwoTone;

private BufferedImage imageOutline;

private Area areaOutline = null;

private JLabel labelOutline;

private JLabel targetColor;

private JSlider tolerance;

private JProgressBar progress;

private SwingWorker sw;

public ImageOutline(BufferedImage image) {

this.image = image;

imageTwoTone = new BufferedImage(

image.getWidth(),

image.getHeight(),

BufferedImage.TYPE_INT_RGB);

}

public void drawOutline() {

if (areaOutline!=null) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值