我想检测并标记图像上最亮和最暗的点。
例如,我正在创建 AVCaptureSession 并使用 AVCaptureVideoPreviewLayer 在屏幕上显示视频帧。现在,在这个相机输出视图上,我希望能够标记当前最暗和最亮的点。
我必须读取图像像素数据吗?如果是这样,我该怎么做?
无论如何,您必须读取像素才能检测到这一点。但如果你想让它更快,不要读取每个像素:只读取 100 个像素中的 1 个:
for (int x = 0; x < widgh-10; x+=10) {
for (int y = 0; y < height-10; y+=10) {
//Detect bright/dark points here
}
}
然后,您可以读取找到的像素周围的像素,以使结果更加正确
获取像素数据的方法如下:stackoverflow.com/questions/448125/ https://stackoverflow.com/questions/448125/在最亮点,红色+绿色+蓝色必须最大(225+225+225 = 675 = 100% 白色)。在最暗点,红色+绿色+蓝色必须为最小值(0 = 100% 黑色)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)