答案 0 :(得分:0)
由于您还没有建议使用工具,我将直接在命令行中使用ImageMagick,因为它安装在大多数Linux发行版上,可用于OSX和Windows。它还有PHP,Perl,Python和.Net绑定。
所以,由于你的背景是统一的(ish),你可以使用trim
来修剪它:
convert image.jpg -fuzz 20% -trim result.jpg
现在你可以添加这样的边框:
convert result.jpg -bordercolor black -border 5 result.jpg
除非您希望保留其他灰色背景,否则不适合您。因此,我们可以向ImageMagick询问"将" 修剪,而不是实际修剪它,而不是实际修剪:
convert image.jpg -fuzz 20% -format %@ info:
81x22+1+14
所以,我们知道它会使一个81x22px的盒子从左边开始1个像素,从顶部开始向下14个像素,所以我们只是在那里画一个矩形而不是修剪它:
convert image.jpg -fill none -stroke black -draw "rectangle 1,14 82,36" result.jpg
或者,如果你想要大纲更胖:
convert image.jpg -fill none -stroke black -strokewidth 5 -draw "rectangle 1,14 82,36" result.jpg
答案 1 :(得分:-1)
对于统一背景,一个简单的解决方案是识别与背景颜色不匹配的所有像素,然后在这些像素的每个轴中找到最小和最大索引以定义矩形。
例如,如果您使用的是Matlab,则可能类似于:
当然,这种方法只有在背景完全均匀的情况下才有效。它还假设您只想绘制一个像素厚的边框。 虽然功能建议专门针对Matlab功能,但这些功能背后的思考过程可能会被移植到其他地方。