作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下问题:
我有一个仅包含黑色和白色像素的二进制图像。如何计算图像特定区域中黑色像素的数量?
例如,我想知道该图像区域坐标中黑色像素的数量是多少:
[175,145]、[229,145]、[175,221]、[229,221] = 顶部左右坐标和底部左右坐标
请知道我该怎么做......:)
谢谢!
最佳答案
通过循环遍历行,然后遍历该行中的每个像素(就像电子表格一样),您可以测试每个像素并将其添加到计数中。
PHP 中有许多处理图像的函数。我用于类似目的的一个是 GD 。您可以使用 imagecolorat 直接测试每个像素的 RGB 值。 。
伪代码
$image = imagecreatefromjpeg('/path/to/image.jpg'); //replace with your image type
$totalBlack = 0;
$area = array( //for your area to evaluate
array(175, 145),
array(229, 145),
array(175, 221),
array(229, 221)
);
for ($y = $area[0][1]; $y < $area[2][1]; $y++ ) {
for($x = $area[0][0]; $x < $area[3][0]; $x++ ) {
$value = imagecolorat($image, $x, $y);
if ($value == /*test for black*/) {
$totalBlack++;
}
}
}
使用 ImageMagick
您可以将图像裁剪为提供的 x,y 值,然后使用 ImageMagick的比较函数将整个部分与纯白色图像进行比较。
关于javascript - 计算坐标区域内的黑色像素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970116/
我有数百个位置的列表,只想显示当前屏幕上这些位置的 MKPinAnnotation。屏幕从 2 英里半径内的用户当前位置开始。当然,用户可以滚动和缩放屏幕。现在,我等待 map 更新事件,然后循环遍历
我试过检查 CGRect: CGFloat imageX1 = imageView.frame.origin.x; CGFloat imageY1 = imageView.frame.origin
我是一名优秀的程序员,十分优秀!