簡體   English   中英

將圖像的差異添加到一個圖像中(Linux/Python)

[英]Add diff of images into one image (Linux/Python)

我正在尋找一種僅將圖像差異融合到一個圖像中的方法。 我正在尋找 linux 命令或使用 python 實現此目的的方法。

示例:源圖像:

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

結果應該是:

在此處輸入圖像描述

另一個用例: http://3.bp.blogspot.com/-h3yuVc0hyvc/ToqQDE0Bf4I/AAAAAAAAGj0/HON-gM_9PhU/s1600/JayBumpOllieStichedFinishedRS.jpg

謝謝!!

文斯

從僅包含背景的圖像開始並將每一幀與其進行比較是有意義的。 背景可以計算為整個序列的中值。 如果我們假設背景中值圖像是 a0.jpg 並且接下來的三個帶 3 個點的幀將是 a1.jpg、a2.jpg 和 a3.jpg,那么可以使用 scikit-image 的 compare_images function 將它們合並在一起並修改僅在遇到變化的那些像素處的值。 請注意,由於壓縮,容差閾值 ( th ) 設置為 0.1。 您可以使用該值 (0,1) 來獲得或多或少的靈敏度。 以下腳本應該是這樣的:

import skimage.io as io 
from skimage.util import compare_images
import numpy as np

im0 = io.imread('a0.jpg') # median of source images
im1 = io.imread('a1.jpg') # source image 1
im2 = io.imread('a2.jpg') # source image 2
im3 = io.imread('a3.jpg') # source image 3

im_all = np.copy(im0)
th = 0.1

# d = np.max(np.abs(im2 - im0), -1)
d = compare_images(im1, im0, method='diff')
d= np.max(np.abs(d), -1)
im_all[d>th] = im1[d>th]
io.imsave("d1.jpg", d>th)

d = compare_images(im2, im0, method='diff')
d= np.max(np.abs(d), -1)
im_all[d>th] = im2[d>th]
io.imsave("d2.jpg", d>th)

d = compare_images(im3, im0, method='diff')
d= np.max(np.abs(d), -1)
im_all[d>th] = im3[d>th]
io.imsave("d3.jpg", d>th)

io.imsave("im_all.jpg", im_all)

img_all.jpg

這不是我所要求的,但它足以滿足我的需求:

convert 1.jpg 2.jpg 3.jpg -evaluate-sequence max evalresult.png

對於帶有雲的示例圖像,效果不是很好(因為雲是白色的),但在另一種情況下效果很好(當差異比背景更亮時)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM