[英]Image algorithm - detection of a light
您可以直接从命令行使用ImageMagick完成一些非常基本的操作,而无需任何代码。 它已安装在大多数Linux发行版上,并且可用于OSX和Windows。
基本上,您会寻找蓝色通道远大于红色或绿色通道且饱和度较高的像素。 您可以这样做:
convert on.jpg -fx "u.b>(u.g+0.2) && u.b>(u.r+0.2) && saturation>0.6" result.png
而当您针对off
图片运行该图片时:
convert off.jpg -fx "u.b>(u.g+0.2)&&u.b>(u.r+0.2)&&saturation>0.6" result.png
您可以像这样计算以上图像中的白色像素:
convert result.png -format "%[fx:mean*w*h]" info:
1227
因此在on
图像中有1227个像素被标识为亮蓝色,在off
图像中有26个像素被标识为亮蓝色。
您可以测试两个图像,而无需创建我在上面创建的中间输出文件:
convert off.jpg -fx "u.b>(u.g+0.2)&&u.b>(u.r+0.2)&&saturation>0.6" -format "%[fx:mean*w*h]" info:
26
convert on.jpg -fx "u.b>(u.g+0.2)&&u.b>(u.r+0.2)&&saturation>0.6" -format "%[fx:mean*w*h]" info:
1227
当然,您可能想要欺骗并尝试我建议的数字。
还要注意,ImageMagick有C,C ++,C#,PHP,Perl,Javascript,Ruby和其他绑定-因此,您实际上可以使用任何一种语言来完成上述所有操作。 或者只是exec()
或system()
以上内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.