小编san*_*ity的帖子

为什么这个图像在Java缩小后看起来如此糟糕?

这是原始图像:http://rank.my/public/images/uploaded/orig-4193395691714613396.png

在这里,它缩小到300x225:

http://rank.my/public/images/uploaded/norm-4193395691714613396.png

在这里,它缩小到150x112:

http://rank.my/public/images/uploaded/small-4193395691714613396.png

正如你所看到的,300x225看起来非常糟糕,150x112看起来很糟糕.这是我用来缩小图像的代码:

private static BufferedImage createResizedCopy(final BufferedImage source, final int destWidth,
        final int destHeight) {
    final BufferedImage resized = new BufferedImage(destWidth, destHeight, source.getType());
    final Graphics2D bg = resized.createGraphics();
    bg.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    bg.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    bg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    final float sx = (float) destWidth / source.getWidth();
    final float sy = (float) destHeight / source.getHeight();
    bg.scale(sx, sy);
    bg.drawImage(source, 0, 0, null);
    bg.dispose();
    return resized;
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?图像缩放不一定非常快,质量绝对优先于速度.我使用了错误的技术吗?

java graphics image-processing graphics2d

5
推荐指数
1
解决办法
2713
查看次数

用于byte []的不可变容器,支持子序列,如String.substring()

String.substring()有效地重用了String对象中的底层char [],我想知道是否有一个byte []数组的不可变容器支持类似的有效重用底层数组.

如果它可以处理有效的追加和前置等事情,可以获得额外的积分.如果它为Maven包装,还有额外的积分.

谁知道这样的事情?

java

5
推荐指数
1
解决办法
5965
查看次数

是否有监督学习算法将标签作为输入,并产生概率作为输出?

假设我想根据哪些标签存在或不存在来确定我将在SO上提出问题的可能性.

让我们想象一下,我有很多关于我过去或过去没有投票的问题的数据.

是否有机器学习算法可以获取这些历史数据,对其进行训练,然后能够预测我未来问题的推荐概率?请注意,它必须是概率,而不仅仅是一些任意分数.

让我们假设最多有7个标签与任何给定的问题相关联,这些标签是从成千上万的超集中提取的.

我希望它能够在标签之间建立非常复杂的连接,而不是每个标签只是以"线性"方式对最终结果做出贡献(就像贝叶斯垃圾邮件过滤器中的单词一样).

因此,例如,可能是"java"这个词增加了我的upvote概率,除非它与"数据库"一起出现,但是"数据库"可能会增加我的"红宝石"时出现的upvote概率.

哦,它应该是计算上合理的(在数百万个问题上训练一两个小时).

我应该在这里研究什么方法?

artificial-intelligence machine-learning data-mining

5
推荐指数
1
解决办法
315
查看次数

使用Google App Engine作为机器学习预测引擎

我没有使用Google App Engine的经验,但我是一位非常有经验的Java开发人员.

我有兴趣通过Google App Engine设置REST API,您可以在其中为其提供数据,并使用我单独生成的预测模型进行预测.

组成预测模型的数据可以是从几百千字节到gzip时的几兆字节,在解压缩时可以是几倍.当存储在内存中时,它基本上由10-30个HashMaps组成,每个HashMaps包含从少数到数万个条目的任何地方.

在预测过程期间,从这些HashMaps中检索数据并以各种方式组合以便得出最终预测.重要的是,尽可能快地发生这种情况,以最大限度地减少API的延迟,这就是我希望将HashMaps保留在内存中的原因.

在Google App Engine中,有没有办法将这些数据存储为序列化文件,以便在启动时加载?我意识到我可以将数据存储在数据存储区中的HashMaps中并根据需要检索它们,但我担心这会相当慢,因为典型的预测可能需要从不同的HashMaps中检索30个不同的值.

即使使用Memcache,我也担心这会比将数据存储在JVM中的HashMaps中慢得多.

java google-app-engine

5
推荐指数
1
解决办法
781
查看次数

是否有一个精心设计,维护的Java决策树学习库?

我需要一个Java决策树学习库.我看过jaDTiWeka,但两者都没有达到现代标准的图书馆设计.

例如,两者仍然在任何地方使用非通用Vector对象,并且既不能以编程方式提供训练数据,也希望从文件或数据库加载数据.

java artificial-intelligence machine-learning data-mining

5
推荐指数
1
解决办法
5087
查看次数

通过自定义属性查找元素是否有效?

我想知道像这样的select语句是否有效:

elements = document.body().select("[data-custom-attr=blahblah]");
Run Code Online (Sandbox Code Playgroud)

JSoup是否为所有元素属性和值创建了一个Map,以便它可以有效地查找它们,或者这是否涉及遍历整个文档?

jsoup

5
推荐指数
1
解决办法
741
查看次数

Maven程序集插件不再产生jar-with-dependencies,为什么?

这是在我的pom.xml中:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
    <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <archive>
        <manifest>
            <mainClass>tahrir.TrMain</mainClass>
        </manifest>
    </archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看整个pom.xml .

这是我运行"mvn -DskipTests = true assembly:assembly"时的输出.

请注意,它似乎是建设
tahrir/target/tahrir-0.0.1-SNAPSHOT.jar
但不是
tahrir/target/tahrir-0.0.1-SNAPSHOT-jar-with-dependencies.jar.

为什么不构建jar-with-dependencies,因为这是我在pom中指定的descriptionRef?这之前工作正常,我不知道可能会有什么变化来打破它......?

java maven-2 maven

5
推荐指数
1
解决办法
4889
查看次数

我正在尝试使用Java的HttpURLConnection来执行"条件获取",但我从未获得304状态代码

这是我的代码:

    final HttpURLConnection conn = (HttpURLConnection) sourceURL.openConnection();
    if (cachedPage != null) {
        if (cachedPage.eTag != null) {
            conn.setRequestProperty("If-None-Match", cachedPage.eTag);
        }
        conn.setIfModifiedSince(cachedPage.pageLastModified);
    }

    conn.connect();

    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

        newCachedPage.eTag = conn.getHeaderField("ETag");
        newCachedPage.pageLastModified = conn.getHeaderFieldDate("Last-Modified", 0);

    } else if (conn.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
        // Never reaches here
    }
Run Code Online (Sandbox Code Playgroud)

我似乎永远不会得到HTTP_NOT_MODIFIED响应代码,甚至连续多次点击同一台服务器 - 页面肯定没有变化.此外,conn.getHeaderField("ETag")似乎总是响应null,有时conn.getHeaderFieldDate("Last-Modified",0)返回0.我已经尝试过针对各种Web服务器.

谁能告诉我我做错了什么?

java caching http http-caching

5
推荐指数
1
解决办法
1万
查看次数

如何在Google App Engine上与Objectify建立多对多关系?

我找不到任何关于在Google App Engine上使用Objectify在对象之间建立多对多关系的适当方法的文档.

任何人都可以解释如何做到这一点?我需要为此创建一个新的"加入"类吗?效率如何?

java google-app-engine objectify

5
推荐指数
1
解决办法
2047
查看次数

是否有一个Java库实现了一个样本分布正常性的测试?

我有一个数据集,我想测试看它与普通或高斯分布的接近程度.我知道有很多算法可以做到这一点,例如.Jarque-Bera测试,Anderson-Darling测试和许多其他测试.

我希望找到其中一个测试的开源Java实现,这样我就不需要从头开始实现它.谁能提供任何指针?

java statistics

5
推荐指数
1
解决办法
1753
查看次数