gpt4 book ai didi

JavaScript 检查数组是否包含修改后的值,计算图像中的唯一像素

转载 作者:行者123 更新时间:2023-11-30 11:25:47 26 4
gpt4 key购买 nike

var image = new SimpleImage("lena.png");
var col = [];
var uniqcol = [];

for (var px of image.values()){

col.push([px.getRed,px.getGreen,px.getBlue]);

if(uniqcol.includes([px.getRed +- 1, px.getGreen +- 1, px.getBlue +- 1]) ){
print('not unique');
}else{
uniqcol.push([px.getRed,px.getGreen,px.getBlue]);
}
}

我想计算图像中唯一像素的数量。唯一像素是 RGB 值不在 1 与其他像素之间的像素。我有上面的代码,但它不起作用。我认为我遇到的问题是检查所选像素 px 值的 RGB 值是否为 +1 或 -1。如果找到唯一像素,则将 id 添加到 uniqcol 数组中。是否有任何其他方法来计算唯一像素,或检查 RGB 值与所选像素值是否在 1 以内的方法?

谢谢。

最佳答案

这会测试每个分量是否在 1 以内,方法是将两者相减,取绝对值,然后检查它是否小于 2。

这可能效率极低。对于每个像素,您都在迭代一个可能很大的数组,直到找到匹配项,或者最坏的情况是找不到匹配项。

var image = new SimpleImage("lena.png");
var col = [];
var uniqcol = [];

for (var px of image.values()){
var found = uniqcol.find(function (el) {
return
Math.abs(el[0] - px.getRed) < 2 &&
Math.abs(el[1] - px.getGreen) < 2 &&
Math.abs(el[2] - px.getBlue) < 2;
});

if (!found) {
uniqcol.push([px.getRed,px.getGreen,px.getBlue]);
} else {
print('not unique');
}
}

这是使用内存的另一种方法。以存储单独的查找结构为代价,它应该快得多。

编辑 - 我删除了这种方法,因为它可能会失败。这可能是可行的,但非常棘手。

关于JavaScript 检查数组是否包含修改后的值,计算图像中的唯一像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48081317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com