Image processing 如何根据亮度级别检测要保留或丢弃的帧?

Image processing 如何根据亮度级别检测要保留或丢弃的帧?,image-processing,imagemagick,graphicsmagick,luminance,Image Processing,Imagemagick,Graphicsmagick,Luminance,我有一系列的图像是从一个慢动作捕捉到的脉冲放电。许多画框几乎是黑色的。我想有选择地保留那些更有趣的画面;亮度更高 我曾考虑过使用ImageMagick或GraphicsMagick(或任何其他工具;没有使用任何工具-我想要更有效的建议) 我将如何选择这样的图像,然后丢弃没有明显亮度级别的其他图像?我假设我必须先建立一个“黑色”的基线,然后可能在视觉上找到最不明亮的帧图像,然后将其作为获得有意义的图像/帧的下限 丢弃(“空”帧)的示例: 保持(带“数据”的框架)示例: 我建议ImageMagic

我有一系列的图像是从一个慢动作捕捉到的脉冲放电。许多画框几乎是黑色的。我想有选择地保留那些更有趣的画面;亮度更高

我曾考虑过使用ImageMagick或GraphicsMagick(或任何其他工具;没有使用任何工具-我想要更有效的建议)

我将如何选择这样的图像,然后丢弃没有明显亮度级别的其他图像?我假设我必须先建立一个“黑色”的基线,然后可能在视觉上找到最不明亮的帧图像,然后将其作为获得有意义的图像/帧的下限

丢弃(“空”帧)的示例:

保持(带“数据”的框架)示例:


我建议ImageMagick侵蚀图像(清除噪声),将数据还原为单色二值图像,并打印图像的统计平均值

convert 5HzsV.jpg -format "%[mean]" -monochrome -morphology Erode Diamond  info:
# => 0
convert lLZFX.jpg -format "%[mean]" -monochrome -morphology Erode Diamond  info:
# => 149.992
所以bash脚本可能很简单,就像

for image in $(ls *.jpg)
do
   L=$(convert "$image" -format "%[mean]" -monochrome -morphology Erode Diamond  info:)
   if [[ $L -gt 0 ]]; then
       echo "Image $image is not empty! @ $L"
   fi
done

当然,这可以根据您的需要进行调整。

图像的编码方式,您可能会发现“有趣”的图像更大,因为均匀黑暗的背景比随机火花的压缩效果更好。例如,您的空Jpeg是21K,而有趣的Jpeg是39K。

我很好奇。我有很多视频片段需要处理,你有没有想过在不提取所有帧的情况下处理视频,然后一帧一帧地处理,以减少“空白”帧存储的额外大小?这不是个坏主意。这里最大的问题是,我还没有提取所有的帧,因为我正在研究一种逐帧分析的方法,而不是先将所有帧存储到文件夹中。您可以对当前帧进行采样,并确定阈值大小。序列的格式是什么?是
MOV
,还是
AVI
等?你能提供几秒钟的样本,里面有一些无聊和有趣的东西吗?你用什么操作系统?有人吗?@MarkSetchell这里有点忙。我会在接下来的几天回到办公室的时候试着贴些东西。