需要更快的方法来获取缓冲图像的每个像素的 RGB 值

2023-11-26

获取每个像素的RGB值的最快方法是什么BufferedImage?

现在我使用两个来获取 RGB 值for循环如下面的代码所示,但获取这些值花费的时间太长,因为嵌套循环对我的图像总共运行了 479999 次。如果我使用 16 位图像,这个数字会更高!

我需要一种更快的方法来获取像素值。

这是我当前正在尝试使用的代码:

BufferedImage bi=ImageIO.read(new File("C:\\images\\Sunset.jpg"));

int countloop=0;  

for (int x = 0; x <bi.getWidth(); x++) {
    for (int y = 0; y < bi.getHeight(); y++) {
        Color c = new Color(bi.getRGB(x, y));
        System.out.println("red=="+c.getRed()+" green=="+c.getGreen()+"    blue=="+c.getBlue()+"  countloop="+countloop++);                                                                                                                                                  
    }
}

我不知道这是否有帮助,我还没有测试过,但你可以这样获取 rgb 值:

BufferedImage bi=ImageIO.read(new File("C:\\images\\Sunset.jpg"));
int[] pixel;

for (int y = 0; y < bi.getHeight(); y++) {
    for (int x = 0; x < bi.getWidth(); x++) {
        pixel = bi.getRaster().getPixel(x, y, new int[3]);
        System.out.println(pixel[0] + " - " + pixel[1] + " - " + pixel[2] + " - " + (bi.getWidth() * y + x));
    }
}

正如您所看到的,您不必在循环内初始化新的颜色。我还按照 onemasse 的建议反转了宽度/高度循环,以从我已有的数据中检索计数器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要更快的方法来获取缓冲图像的每个像素的 RGB 值 的相关文章

随机推荐

  • 将 2500 个 geoJSON 多边形渲染到传单地图上

    我一直在寻找但似乎找不到解决方案 我有一个大小为 170mb 的 GeoJSON 文件 它包含大约 2500 个多边形 不知何故 我需要将其渲染为传单地图 显然以这样的规模我没有机会 呈现这些数据的最简单方法是什么 我是否能够创建一个完整的
  • django中如何动态创建权限?

    现在我可以使用 Django 组模块创建新组 from django contrib auth models import Group我可以为组分配权限 例如我创建了一个新组 人力资源 by Group name HR 现在我想创建像这样的
  • 如何将 javascript 值设置为 jinja 变量

    我知道我们可以像这样将 Jinja 变量设置为 js 变量 var x value 但我正在尝试做相反的事情 即我正在尝试将 javascript 值设置为 jinja 变量 我尝试了以下方法 但没有任何效果 value x set val
  • .zshrc 配置文件语法错误

    我在 zshrc 文件中的某处遇到语法错误 但我似乎找不到它 我收到此错误消息 zshrc 49 bad assignment 这是我的 zshrc 文件 Path to your oh my zsh configuration ZSH H
  • R:数据框中的重音字符

    我很困惑为什么某些字符 例如 和 在数据框中丢失了变音标记 而其他字符 例如 和 却没有 顺便说一句 我的操作系统是 Windows 10 在下面的示例代码中 向量 czechvec 有 11 个单字符字符串 全部是斯拉夫重音字符 R 正确
  • 学说合并:日期时间字段始终更新

    我用现有的实体创建一个新实体Id 我想更新相关的数据库记录 教义merge一直是我最好的朋友 识别是否有更改并生成正确的更新查询 entity new Entity entity gt setId 1 entity gt setName t
  • 如何使用 stringr 的 Replace_all() 函数替换字符串中的特定匹配项

    The stringr包有帮助str replace and str replace all 功能 例如 mystring lt one fish two fish red fish blue fish str replace mystri
  • Keras 极高的损失

    我试图通过特征来预测价格 我选择了一个非常简单的模型 但它的工作原理很奇怪 损失函数非常高 我看不出问题出在哪里 这是我的模型 define base model def baseline model create model model
  • 在Java流中添加多个字段(以及条件流操作)

    假设我有这门课 public class Thing private BigDecimal field1 private BigDecimal field2 private BigDecimal otherField1 private Bi
  • php中数组的右旋转

    例如我有一个数组 a 1 2 3 4 5 由此 a 如何获取最后一个并将其设置为第一个 5 1 2 3 4 我如何将最后两个数组变成这样 4 5 1 2 3 您可以结合使用array pop which pops数组的最后一个元素 以及ar
  • 通过 python 在脚本中使用密码 ssh 到远程计算机

    我正在使用远程机器 每次我需要验证文件更新时间时 我都必须使用 ssh 并且有多个脚本可以通过 ssh 连接到远程计算机 我在网上查了一下 但找不到符合我要求的 我试图找到一个使用 ssh 的 python 脚本 并且密码也在脚本中 因为我
  • 始终在 jQuery 自动完成中显示特定选择,即使它与输入不匹配

    我有一个 jQuery 自动完成 jquery ui 版本 1 8 我可以在其中输入一个名称 如果可用 我希望用户从列表中选择一个名称 因为这些是我们数据库中的所有者名称 但是 有时他们需要添加新的所有者名称 在这种情况下 我希望他们从自动
  • 为证书提供 EC 私钥以在 HttpClient C# 中使用

    我有一个可以使用 X509Certificate2 类读取的证书 如下所示 X509Certificate2 证书 new X509Certificate2 certificate pem 但我也有一个EC私钥 这是它的文件内容 BEGIN
  • 如何获取以毫秒为单位的时间差

    我无法解决这个问题 所以我希望有人能提供帮助 我有一首歌曲 歌曲长度以毫秒为单位 我还有以 DATETIME 格式播放歌曲的日期 我想做的是找出歌曲播放时间还剩多少毫秒 Example tracktime 219238 dateplayed
  • requiredFieldValidator 要求用户单击两次

    我有一个简单的网络表单 其中有一个文本框和一个连接到它的RequiredFieldValidator 当触发RequiredFieldValidator错误时 用户必须单击提交两次才能发布表单 第一次单击会清除错误 第二次单击实际上会触发按
  • Java 3 颜色渐变

    我有一个JPanel 我想在其中绘制渐变 我有下面的代码 但只绘制了 2 种颜色的渐变 我想添加第三个 但不知道如何 我想要的是将面板的左上角设置为白色 右上角设置为红色 两个底角设置为黑色 为了实现这一目标 我必须做什么 看起来像这样 p
  • OpenCV Java 将 VideoCapture 与失败的文件绑定

    我使用 OpenCV 2 4 8 和提供的 Windows 64 位 Java jar 到目前为止 我一直在当前环境中充分利用 OpenCV 我无法使用打开视频文件VideoCapture类但是网络摄像头工作正常 以下内容按预期工作vide
  • 从 SASS/LESS 文件中重构和删除未使用的 CSS

    我正在做一个大的工作单页应用程序 backbonejs和rails 它使用 LESS 作为 CSS 预处理器 并且生成的 css 文件已经增长到这样的程度 对于 IE 我们必须将其分成 3 个文件http blesscss com 尽管有工
  • Spring webflux:将http重定向到https

    如何在 spring webflux 中配置 http gt https 重定向 我需要全部http请求被重定向到https 据我了解任何http请求应该有301http 状态响应更改为 http gt https 没有找到任何相关信息文档
  • 需要更快的方法来获取缓冲图像的每个像素的 RGB 值

    获取每个像素的RGB值的最快方法是什么BufferedImage 现在我使用两个来获取 RGB 值for循环如下面的代码所示 但获取这些值花费的时间太长 因为嵌套循环对我的图像总共运行了 479999 次 如果我使用 16 位图像 这个数字