Images

如何在兩張圖片中找到y軸聯合相似度?

  • April 20, 2017

我想合併兩張圖片,但我不知道如何通過任何 Linux/Unix 工具在 y 軸上找到剪切位置,但這裡ImageMagick作為第一個想法。歡迎任何方法:程序化解決方案或通過手動幫助解決問題的方法。兩張圖片在 y 軸上具有聯合相似性,我想將其最小化然後合併輸出。虛擬碼

  1. 找到兩張圖片中數據首次相等的 y 軸位置。
  2. 只要圖片之間不相等,就盡量減少兩張圖片的 y 軸相等。
  3. 通過適當的位置剪切每張圖片。對於此處的百分比最高,convert -gravity SouthWest -crop 100x70%x+0+0 infile.jpg outfile.jpg。對於底部類似,convert -gravity NorthWest -crop 100x70%x+0+0 infile.jpg outfile.jpg
  4. 合併兩個圖像的正確部分等(這裡)通過convert -append A-edit.jpg B-edit.jpg output.png

圖 1 圖像 A,圖 2 圖像 B,圖 3 預期輸出

在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

Hugin 將為您拼接這些圖像。

本教程中有一個腳本可用於拼接掃描的圖像,稱為run-scan-pto_var.sh,它將完全滿足您的需要。

在我的 Debian 系統上,我需要安裝兩個軟體包(當然還有它們的依賴項):

apt-get install hugin hugin-tools

為了問題的完整性,我在這裡包含了一個稍微修改過的版本(這個版本在命令行上接受圖像文件名,而不是硬編碼):

#! /bin/sh
# hugin command tools script to stitch scanned images, fov unknown
# use of fov >= 10 should be OK, could simply set FOV=10
# Terry Duell 2013, 2014

# usage...run-scan-pto_var.sh outputprefix fov

#get the output file prefix
Prefix=$1

# get the fov
FOV=$2

shift 2

pto_gen --projection=0 --fov=$FOV -o project.pto "$@"
pto_lensstack -o project1.pto --new-lens i1 project.pto
cpfind -o project1.pto --multirow project1.pto
cpclean -o project2.pto project1.pto
linefind -o project3.pto project2.pto
pto_var -o setoptim.pto --opt r,d,e,!r0,!d0,!e0 project3.pto
autooptimiser -n -o autoptim.pto setoptim.pto
pano_modify  --projection=0 --fov=AUTO --center --canvas=AUTO --crop=AUTO -o autoptim2.pto autoptim.pto
pto2mk -o project.mk -p $Prefix autoptim2.pto
make -j 2 -f project.mk all

# Clean up afterwards
rm -f project.pto project1.pto project2.pto project2.pto project.mk
rm -f "$Prefix"[0-9][0-9][0-9][0-9].tif
rm -f autoptim.pto autoptim2.pto autoptim2.pto_rsp.arg
rm -f setoptim.pto

如果您的圖像被呼叫wIowW.jpg並且orMDp.jpg- 正如您的圖像所命名的那樣 - 並且您想要結果,rsp.tif您可以像這樣執行腳本:

./run-scan-pto_var.sh rsp 10 *.jpg

輸出始終寫入 TIFF 文件。但是,這種格式可以輕鬆轉換為幾乎任何其他圖像格式。

結果?

在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/355418