小编Jas*_*son的帖子

如何定义像素颜色的清晰范围

我要做的是测试像素是否为蓝色.

例如:蓝色在RGB中定义为rgb(0,0,255).典型的颜色深度为8位(256色),16位(约65,000),24位(约1600万)和32位(超过40亿种不同颜色).因此,显然有超过1种蓝色.

如果蓝色与否,如何定义蓝色范围并测试每个像素?关于不同的深度,我需要记住什么?

到目前为止我的代码是:

BufferedImage image = ImageIO.read(file);

// Getting pixel color by position x and y
for (int i = 0; i < image.getWidth(); i++) {
    for (int j = 0; j < image.getHeight(); j++) {
        int clr = image.getRGB(i, j);
Run Code Online (Sandbox Code Playgroud)

注1:

http://www.workwithcolor.com/cyan-blue-color-hue-range-01.htm

这里的问题是,颜色步骤之间是什么?

一个例子就是很棒.

注2:

我刚刚发现了一个关于我感兴趣的话题的演讲:

http://cstwiki.wtb.tue.nl/images/06-opencv.pdf

在第13页,我们可以看到红色的定义.但是你如何定义其他颜色?

java rgb pixel colors range

15
推荐指数
1
解决办法
1006
查看次数

如何在Java中正确删除数组

我使用Java时只有4天的年龄,根据我搜索的教程,讲师将大量精力集中在解释如何分配二维数组(例如)上:

Foo[][] fooArray = new Foo[2][3];
Run Code Online (Sandbox Code Playgroud)

...但是我没有找到任何说明如何删除它们的内容。

从内存的fooArray角度来看,该变量将指向堆中的一个内存块,其中有2个元素。每个元素也指向堆中的另一个块,该块具有3个元素。

话虽这么说,我可以只引用第一个元素块,然后垃圾收集器完成这项工作吗?

Foo[1] = null;Foo[2] = null;

还是我必须使每个实例化的Foo元素都为空?

Foo[1][1] = null; Foo[1][2] = null; Foo[1][3] = null; ...

java arrays

13
推荐指数
2
解决办法
1854
查看次数

锁定分裂与锁定条带化

以下是约书亚的Effective Java摘录:

如果在内部同步类,则可以使用各种技术来实现高并发性,例如锁定拆分,锁定条带化和非阻塞并发控制.

以上表明锁定分裂和锁定条带是两种不同的技术,但当我试图找到差异时,我找不到差异.

它们之间是否有区别或它们是一样的?

java multithreading locking

9
推荐指数
1
解决办法
1359
查看次数

用于通过Graph进行网络可视化的Java Graph库

我想实现一个可视化界面,用于可视化nodesedges图形以及一些对象,如节点之间在节点之间移动的数据包如下图所示:

在此输入图像描述

我尝试过使用Jung库,但它没有任何类型的功能,可以使用边缘作为移动对象的路径在节点之间移动对象.我已经看到了Graph Stream Library的演示,它显示了一些在节点之间移动的对象,但是当我查看库文档时,我没有找到任何用于移动图形的功能,这个库是否能够满足我的需求?

如果没有,任何人都可以建议一个可以提供这种功能的库.任何建议,将不胜感激.

编辑:进一步努力实施

我已经在JUNG中实现了这样的功能,并且直边它工作正常,我正在使用IterativeProcess类并按setLocation功能移动节点.

是实施.

但是我想知道是否有更好的方法可以通过其他一些具有内部定义功能的库来执行此操作?

java visualization graph graph-visualization jung2

6
推荐指数
1
解决办法
861
查看次数

android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)中的java.lang.OutOfMemoryError

我试图按下按钮执行动画..按钮单击步骤如下..

  1. 按钮图像发生变化
  2. 动画播放
  3. 显示下一个布局..

但我得到一个内存不足的例外..

当动画文件未添加到项目时没有错误.但是,由于动漫的加入存在问题.

我在这里使用3个类文件(home_screen,button_anime和home)

home_screen.java接收按钮点击信息,更改按钮图像并转移到button_anime类,动画文件在button_anime.java中启动,动画播放后,下一个布局从home.java显示

原木猫如下..

 E/AndroidRuntime(1255): java.lang.OutOfMemoryError
 E/AndroidRuntime(1255):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
 E/AndroidRuntime(1255):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587)
 E/AndroidRuntime(1255):    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:422)
 E/AndroidRuntime(1255):    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)
 E/AndroidRuntime(1255):    at android.content.res.Resources.loadDrawable(Resources.java:2110)
 E/AndroidRuntime(1255):    at android.content.res.Resources.getDrawable(Resources.java:700)
 E/AndroidRuntime(1255):    at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282)
 E/AndroidRuntime(1255):    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
 E/AndroidRuntime(1255):    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
 E/AndroidRuntime(1255):    at android.content.res.Resources.loadDrawable(Resources.java:2092)
 E/AndroidRuntime(1255):    at android.content.res.Resources.getDrawable(Resources.java:700)
 E/AndroidRuntime(1255):    at android.view.View.setBackgroundResource(View.java:15303)
 E/AndroidRuntime(1255):    at com.quinoid.thomasinternational.Button_Anime.onCreate(Button_Anime.java:19)
 E/AndroidRuntime(1255):    at android.app.Activity.performCreate(Activity.java:5231)
 E/AndroidRuntime(1255):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
 E/AndroidRuntime(1255):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
 E/AndroidRuntime(1255):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
 E/AndroidRuntime(1255):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
 E/AndroidRuntime(1255):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
 E/AndroidRuntime(1255):    at android.os.Handler.dispatchMessage(Handler.java:102)
 E/AndroidRuntime(1255):    at android.os.Looper.loop(Looper.java:136)
 E/AndroidRuntime(1255):    at android.app.ActivityThread.main(ActivityThread.java:5017)
 E/AndroidRuntime(1255):    at …
Run Code Online (Sandbox Code Playgroud)

java animation android out-of-memory

5
推荐指数
2
解决办法
8995
查看次数

如何在 Java 中使用 Spring security OAuth2 在资源服务器中动态配置 Httpsecurity?

我是 Spring OAuth 2 的新手。我想知道如何Httpsecurity使用 Spring OAuth 2.0 在资源服务器中动态配置。因为我有存储在数据库中的antMatchers和列表scopes(可能在将来antMatchers并且scopes可以添加)。

对于单身antMatchersscope我尝试过如下所示,并且按预期工作:

@Override
public void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/adminservice/")
        .access("#oauth2.hasScope('Products')");
}
Run Code Online (Sandbox Code Playgroud)

如果有一个antMatchersscopes存储在数据库中的列表,我应该如何配置它,例如:

**antMatchers**     **scopes**
/adminservice/      products
/xxxx/              yyyy
/yyyy/              xxxx
/jkjlk/             uyuuy
/klklk/             hjkskjk
Run Code Online (Sandbox Code Playgroud)

在这里,spring 启动本身想要在资源服务器中动态地从数据库中配置antMatchers相应scope的。

我怎样才能做到这一点?

java spring spring-security oauth-2.0

4
推荐指数
1
解决办法
4028
查看次数

迭代实例变量的ArrayList

我想知道如何遍历以下Arraylist.

public class FruitHandler {

    private ArrayList<Fruits> fruit;
    private ArrayList<Integer> fruitUID= new ArrayList<>();

    public static FruitHandler getInstance() {
            return instance;
    }

    public void addFruit(Fruit fruit) {
        this.fruitUID.add(fruit.getfruitUID());
        this.fruit.add(fruit);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是遍历fruitUID并返回存储在ArrayList<Fruits> fruit其中的水果类的实例与我给定的UID匹配.

例如,我有一个fruitUID = 10,我希望得到存储在ArrayList<Fruits> fruit其中的水果类实例的引用fruitUID = 10.

java

4
推荐指数
1
解决办法
71
查看次数

数组中单个加号的含义

本教程之后,我看到在MainActivity.java的末尾有一个我理解的数组,但不知道最后一个+符号是做什么的

String Slecteditem= itemname[+position];
Run Code Online (Sandbox Code Playgroud)

我删除+,我认为它的工作方式相同,但不确定是否有一个我无法看到的目的.

java android

3
推荐指数
1
解决办法
175
查看次数

ArrayList在每个索引处返回0

所以我在这个练习中遇到了一些麻烦.我通过在每个线程中同步arraylist来解决其中一个问题,但仍然有问题.arraylist"data"用0到9999之间的数字填充.但是,data.get(i); 似乎每个指数都会返回0,我不能为我的生活找出原因.这是代码:

private static int LIST_TRAVERSE_LIMIT = 10000; // size of problem

private boolean problem_3_failed = false; // set to true if failed

private List<Integer> data = new ArrayList<Integer>(); // data shared between threads, traversed and modified

private int negative_hits = 0; // counter for how many modifications are found during traversal

private void test_parallel_iteration() {
    for(int i=0; i<LIST_TRAVERSE_LIMIT; i++) data.add(i);
    // Define threads and run them
    Thread t1 = new Thread(() -> { // modify the list in just …
Run Code Online (Sandbox Code Playgroud)

java arraylist

3
推荐指数
1
解决办法
74
查看次数

原始检查

每个素数都是6k + 1或6k-1的形式.为了检查数字是否为素数,我们可以使用以下算法.我见过基于这些算法编写的程序.

public boolean isPrime(int n)
{

    if (n <= 1)  return false;
    if (n <= 3)  return true;

    if (n%2 == 0 || n%3 == 0) return false;

    for (int i=5; i*i<=n; i=i+6)
        if (n%i == 0 || n%(i+2) == 0)
           return false;

    return true;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我们以下列方式编写代码,我不明白会出现什么问题:

public boolean isPrime(int number){
        boolean primeFlag = false;
        if(number == 0 || number ==1){
            return primeFlag;
        }
        if(number == 2 || number == 3){
            primeFlag = true;
        }
        if((number+1)%6 == 0){ …
Run Code Online (Sandbox Code Playgroud)

java primes time-complexity

2
推荐指数
1
解决办法
109
查看次数