Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 我需要留下图像中最大的物体_Image Processing_Imagemagick_Object Detection - Fatal编程技术网

Image processing 我需要留下图像中最大的物体

Image processing 我需要留下图像中最大的物体,image-processing,imagemagick,object-detection,Image Processing,Imagemagick,Object Detection,我需要用ImageMagick从图像中检测出最大的物体。它可以更大或更小,也可以在其他位置。它总是黑色的,背景总是白色的。 像这样使用连接组件分析 convert objects.png -define connected-components:verbose=true \ -define connected-components:area-threshold=100 \ -connected-components 8 -auto-level

我需要用ImageMagick从图像中检测出最大的物体。它可以更大或更小,也可以在其他位置。它总是黑色的,背景总是白色的。

像这样使用连接组件分析

convert objects.png -define connected-components:verbose=true      \
   -define connected-components:area-threshold=100                 \
   -connected-components 8 -auto-level output.png

Objects (id: bounding-box centroid area mean-color):
  0: 595x842+0+0 296.7,420.0 499414 gray(255)
  7: 37x30+342+632 360.0,646.5 1110 gray(0)
  3: 12x15+465+375 470.5,382.0 180 gray(0)
  1: 23x12+439+332 447.9,335.4 150 gray(0)
  6: 13x16+451+425 456.6,430.6 136 gray(0)
列出的第一个对象(第一行)是白色对象,因为
平均颜色为灰色(255),因此是背景,因此我忽略了这一点。第二个是最大的(面积=1110),我可以像这样画一个红色的矩形

convert objects.png -stroke red -strokewidth 5 -fill none -draw "rectangle 342,632 379,662" out.png

如果要遮罩最大对象边界框之外的所有对象,可以按如下方式执行:

convert objects.png -alpha on            \
   \( +clone                             \
      -evaluate set 0                    \
      -fill white                        \
      -draw "rectangle 342,632 379,662"  \
      -alpha off                         \
   \) -compose copy-opacity -composite result.png
基本上,括号内的部分复制原始图像(
+clone
),用黑色填充它(
-evaluate set 0
),然后在最大形状的边界框上绘制一个白色框,然后使用该黑白遮罩设置我们开始使用的原始图像的不透明度。这就给你留下了这样一个问题:


你应该说你需要什么地方(java,c,C++,C++,Android)