【问题标题】:faster imagemagick caption drawing更快的 imagemagick 标题绘图
【发布时间】:2021-01-11 18:31:46
【问题描述】:

我的项目涉及在图像中查找框并检查其中的内容。 出于调试和证明的目的,我必须在页面上绘制标题。 生成的 imagemagick 命令如下所示:

magick Q_College-001.dist.png -colorspace sRGB -stroke none -strokewidth 1  -background "rgba(0,255,0,0.3)" -size 37.8x29.4 caption:'84-1' -geometry  +200.6+125.8 -compose over -composite  \
-background "rgba(255,0,0,0.3)" -size 40.6x29.4 caption:'87-2' -geometry  +519.2+125.8 -compose over -composite \
 -background "rgba(0,255,0,0.3)" -size 53.2x30.8 caption:'317-3' -geometry  +538.4+287.6 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'322-4' -geometry  +639.2+287.8 -compose over -composite \
 -background "rgba(0,255,0,0.3)" -size 54.6x29.4 caption:'463-5' -geometry  +535.2+334.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'479-6' -geometry  +638.2+337.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'605-7' -geometry  +535.4+371.8 -compose over -composite  -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'601-8' -geometry  +637.4+370.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x28 caption:'728-9' -geometry  +536.2+437 -compose over -composite  -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'744-10' -geometry  +636.4+438.8 -compose over -composite \
 -background "rgba(0,255,0,0.3)" -size 54.6x30.8 caption:'999-11' -geometry  +537.2+531.6 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x30.8 caption:'1005-12' -geometry  +636.2+531.6 -compose over -composite  -background "rgba(0,255,0,0.3)" -size 54.6x29.4 caption:'1483-13' -geometry  +534.2+748.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'1489-14' -geometry  +631.2+748.8 -compose over -composite \
 -background "rgba(0,255,0,0.3)" -size 56x32.2 caption:'1595-15' -geometry  +534+782.4 -compose over -composite  -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'1589-16' -geometry  +630.4+782.8 -compose over -composite \
 -background "rgba(0,255,0,0.5)" -size 53.2x29.4 caption:'1762-17' -geometry  +534.4+877.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x30.8 caption:'1767-18' -geometry  +631.2+877.6 -compose over -composite  -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1837-19' -geometry  +535.4+928.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'1827-20' -geometry  +630.4+926.8 -compose over -composite  -background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'1890-21' -geometry  +536.2+977.8 -compose over -composite \
 -background "rgba(0,255,0,0.3)" -size 51.8x30.8 caption:'1886-22' -geometry  +628.6+976.6 -compose over -composite  -background "rgba(0,255,0,0.5)" -size 80.8x32 caption:'194-23' -geometry  +878.1+221 -compose over -composite \
 -background "rgba(0,255,0,0.5)" -size 72x32 caption:'198-24' -geometry  +1091+221 -compose over -composite  -background "rgba(0,255,0,0.5)" -size 80x32.8 caption:'189-25' -geometry  +1291+220.1 -compose over -composite \
 -background "rgba(0,255,0,0.5)" -size 80.8x44.8 caption:'276-26' -geometry  +878.1+262.6 -compose over -composite  -background "rgba(0,255,0,0.5)" -size 72x44.8 caption:'280-27' -geometry  +1091+262.6 -compose over -composite \
 -background "rgba(0,255,0,0.5)" -size 80x44 caption:'286-28' -geometry  +1291+262.5 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 81.6x44 caption:'418-29' -geometry  +878.2+318.5 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 72x44.8 caption:'404-30' -geometry  +1091+317.6 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 79.2x44.8 caption:'411-31' -geometry  +1291.9+317.6 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 81.6x45.6 caption:'558-32' -geometry  +878.2+373.7 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 72x45.6 caption:'563-33' -geometry  +1091+373.7 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 79.2x44.8 caption:'570-34' -geometry  +1291.9+373.6 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 81.6x32.8 caption:'695-35' -geometry  +878.2+429.1 -compose over -composite  -background "rgba(0,255,0,0.5)" -size 72x31.2 caption:'701-36' -geometry  +1091+428.9 -compose over -composite \
 -background "rgba(0,255,0,0.5)" -size 80x32.8 caption:'691-37' -geometry  +1291+428.1 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 80.8x31.2 caption:'869-38' -geometry  +878.1+468.9 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 72x32 caption:'859-39' -geometry  +1091+468 -compose over -composite  -background "rgba(0,255,0,0.5)" -size 80x32 caption:'865-40' -geometry  +1291+468 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 80.8x32 caption:'952-41' -geometry  +878.1+508 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 72x32 caption:'957-42' -geometry  +1091+508 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 80x32 caption:'948-43' -geometry  +1291+507 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 80.8x57.6 caption:'1069-44' -geometry  +878.1+551.2 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 72x57.6 caption:'1072-45' -geometry  +1091+551.2 -compose over -composite  -background "rgba(255,0,0,0.5)" -size 80x58.4 caption:'1063-46' -geometry  +1291+550.3 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 80.8x44.8 caption:'1193-47' -geometry  +878.1+621.6 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 72x44.8 caption:'1198-48' -geometry  +1091+621.6 -compose over -composite \
 -background "rgba(255,0,0,0.5)" -size 80x44.8 caption:'1203-49' -geometry  +1291+621.6 -compose over -composite  -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1331-50' -geometry  +1202.4+688.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'1326-51' -geometry  +1304.4+687.8 -compose over -composite  -background "rgba(0,255,0,0.3)" -size 54.6x29.4 caption:'1403-52' -geometry  +1201.2+722.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'1397-53' -geometry  +1306.2+721.8 -compose over -composite  -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1685-54' -geometry  +1204.4+835.8 -compose over -composite \
 -background "rgba(255,0,0,0.3)" -size 51.8x28 caption:'1691-55' -geometry  +1301.6+836 -compose over -composite  Q_College-001.dist.ans.png

写入结果图像需要 30 多秒(PNG 为 1500x,对于框计算不能更小...)。 有没有办法更快地获得结果? 我尝试删除-compose over -composite,但相关标题不打印.....

感谢您的帮助

米歇尔

【问题讨论】:

  • 也许您可以为您的问题添加更多上下文 - 您需要多久执行一次?你是在树莓派上还是什么的——在我的 Mac 上需要 5 秒。您是否考虑过将其生成为透明背景上的预构建叠加层,以便您可以将其作为单个文件叠加到所有图像上?您是否知道 -background XXX-compose XXX"settings" 并且它们保持设置直到更改 - 所以您可以大大简化您的命令。
  • 1) 我必须对每一页调查都这样做。大约 25 页 x 400 份调查。 2) 在我的 macbook 上,每个需要 20 秒。
  • 我确实在我的 mac 上再次尝试过,只是为了确认 magick Test_q2c-000.dist.png -colorspace sRGB -stroke none -strokewidth 1 45,47s user 13,30s system 559% cpu 10,508 total

标签: performance imagemagick


【解决方案1】:

如果我正在编写这个命令,为了清楚起见,我可能会单独构建每个标题并将其分页几何设置在一组括号内,然后在最后一次将所有这些组合到输入图像上“ -展平”。

magick Q_College-001.dist.png -colorspace sRGB -stroke none -strokewidth 1 \
   \( -background "rgba(0,255,0,0.3)" -size 37.8x29.4 caption:'84-1'    -set page +200.6+125.8  \) \
   \( -background "rgba(255,0,0,0.3)" -size 40.6x29.4 caption:'87-2'    -set page +519.2+125.8  \) \
   ...
   \( -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1685-54' -set page +1204.4+835.8 \) \
   \( -background "rgba(255,0,0,0.3)" -size 51.8x28   caption:'1691-55' -set page +1301.6+836   \) \
   -flatten Q_College-001.dist.ans.png

在我的中等速度的 Windows 10 机器上,无论是否进行这些修改,完整的命令都会在大约 7 秒内运行。

【讨论】:

  • 感谢您的想法。当然这个“命令”是生成的。我会尽力通知您。
  • 辉煌。 7,24s 用户 0,61s 系统 134% cpu 5,852 与 45,47s 用户 13,30s 系统 559% cpu 10,508 相比,非常感谢
【解决方案2】:

再次感谢您的帮助。我分享了一种完全不同(而且方式更快)的方法。我发现的唯一缺点是没有使用 -caption,这意味着我必须为文本修复标准字体大小。就我而言,这不是一个大问题。如果有人知道如何在 SVG/MVG 中模拟 -caption...

magick source.png -colorspace sRGB -draw " fill rgba(255,0,0,0.3)  rectangle 200.6,125.8 238.4,155.2 rectangle 639.2,287.8 693.8,317.2 rectangle 638.2,337.8 692.8,367.2 rectangle 535.4,371.8 588.6,401.2 rectangle 636.4,438.8 689.6,468.2 rectangle 636.2,531.6 690.8,562.4 rectangle 631.2,748.8 685.8,778.2 rectangle 630.4,782.8 683.6,812.2 rectangle 631.2,877.6 685.8,908.4 rectangle 630.4,926.8 683.6,956.2 rectangle 536.2,977.8 590.8,1007.2 rectangle 1202.4,688.8 1255.6,718.2 rectangle 1201.2,722.8 1255.8,752.2 rectangle 1204.4,835.8 1257.6,865.2 
fill rgba(0,255,0,0.3)  rectangle 519.2,125.8 559.8,155.2 rectangle 535.2,334.8 589.8,364.2 rectangle 637.4,370.8 690.6,400.2 rectangle 537.2,531.6 591.8,562.4 rectangle 534.2,748.8 588.8,778.2 rectangle 535.4,928.8 588.6,958.2 rectangle 628.6,976.6 680.4,1007.4 rectangle 1304.4,687.8 1357.6,717.2 rectangle 1306.2,721.8 1360.8,751.2 rectangle 1301.6,836 1353.4,864 
fill rgba(0,255,0,0.5)  rectangle 538.4,287.6 591.6,318.4 rectangle 536.2,437 590.8,465 rectangle 534,782.4 590,814.6 rectangle 534.4,877.8 587.6,907.2 rectangle 878.1,221 958.9,253 rectangle 1091,221 1163,253 rectangle 878.1,262.6 958.9,307.4 rectangle 1091,262.6 1163,307.4 rectangle 1291,428.1 1371,460.9 
fill rgba(255,0,0,0.5)  rectangle 1291,220.1 1371,252.9 rectangle 1291,262.5 1371,306.5 rectangle 878.2,318.5 959.8,362.5 rectangle 1091,317.6 1163,362.4 rectangle 1291.9,317.6 1371.1,362.4 rectangle 878.2,373.7 959.8,419.3 rectangle 1091,373.7 1163,419.3 rectangle 1291.9,373.6 1371.1,418.4 rectangle 878.2,429.1 959.8,461.9 rectangle 1091,428.9 1163,460.1 rectangle 878.1,468.9 958.9,500.1 rectangle 1091,468 1163,500 rectangle 1291,468 1371,500 rectangle 878.1,508 958.9,540 rectangle 1091,508 1163,540 rectangle 1291,507 1371,539 rectangle 878.1,551.2 958.9,608.8 rectangle 1091,551.2 1163,608.8 rectangle 1291,550.3 1371,608.7 rectangle 878.1,621.6 958.9,666.4 rectangle 1091,621.6 1163,666.4 rectangle 1291,621.6 1371,666.4 
fill darkblue font-size 13  text 200.6,135.8'84-1'  text 519.2,135.8'87-2'  text 538.4,297.6'317-3'  text 639.2,297.8'322-4'  text 535.2,344.8'463-5'  text 638.2,347.8'479-6'  text 535.4,381.8'605-7'  text 637.4,380.8'601-8'  text 536.2,447'728-9'  text 636.4,448.8'744-10'  text 537.2,541.6'999-11'  text 636.2,541.6'1005-12'  text 534.2,758.8'1483-13'  text 631.2,758.8'1489-14'  text 534,792.4'1595-15'  text 630.4,792.8'1589-16'  text 534.4,887.8'1762-17'  text 631.2,887.6'1767-18'  text 535.4,938.8'1837-19'  text 630.4,936.8'1827-20'  text 536.2,987.8'1890-21'  text 628.6,986.6'1886-22'  text 878.1,231'194-23'  text 1091,231'198-24'  text 1291,230.1'189-25'  text 878.1,272.6'276-26'  text 1091,272.6'280-27'  text 1291,272.5'286-28'  text 878.2,328.5'418-29'  text 1091,327.6'404-30'  text 1291.9,327.6'411-31'  text 878.2,383.7'558-32'  text 1091,383.7'563-33'  text 1291.9,383.6'570-34'  text 878.2,439.1'695-35'  text 1091,438.9'701-36'  text 1291,438.1'691-37'  text 878.1,478.9'869-38'  text 1091,478'859-39'  text 1291,478'865-40'  text 878.1,518'952-41'  text 1091,518'957-42'  text 1291,517'948-43'  text 878.1,561.2'1069-44'  text 1091,561.2'1072-45'  text 1291,560.3'1063-46'  text 878.1,631.6'1193-47'  text 1091,631.6'1198-48'  text 1291,631.6'1203-49'  text 1202.4,698.8'1331-50'  text 1304.4,697.8'1326-51'  text 1201.2,732.8'1403-52'  text 1306.2,731.8'1397-53'  text 1204.4,845.8'1685-54'  text 1301.6,846'1691-55'  "   result.jpg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多