OpenCV kullanarak bir görüntüyü bir diğerinden nasıl çıkarabilirim?openCV kullanarak bir görüntüyü diğerinden çıkarma
Ps .: Ben Sub yöntemi kullanmak sonra, belleğe görüntüleri yüklemek için kullanın LoadImage
C++ yapmak
OpenCV kullanarak bir görüntüyü bir diğerinden nasıl çıkarabilirim?openCV kullanarak bir görüntüyü diğerinden çıkarma
Ps .: Ben Sub yöntemi kullanmak sonra, belleğe görüntüleri yüklemek için kullanın LoadImage
C++ yapmak
gerekecek çünkü piton uygulamasını kullanmak coudn't. Bu yardımcı olacaktır eğer
Bu bağlantı, bazı örnek kod içerir: http://permalink.gmane.org/gmane.comp.lib.opencv/36167
#include <cv.h>
#include <highgui.h>
using namespace cv;
Mat im = imread("cameraman.tif");
Mat im2 = imread("lena.tif");
Mat diff_im = im - im2;
Görüntüyü değiştir adları. Ayrıca aynı boyuta sahip olduklarından emin olun. Cv :: subtract() yöntemini kullanarak
.
Mat img1=some_img;
Mat img2=some_img;
Mat dest;
cv::subtract(img1,img2,dest);
Bu, (img1-img2) öğesinin eksiltme işlemini gerçekleştirir. görüntüler genellikle imzasız biçimlerini kullanarak saklanır yana sen Yerine diff
ya da sade çıkarma kullanmanın o http://docs.opencv.org/modules/core/doc/operations_on_arrays.html
hakkında daha fazla ayrıntı bulabilirsiniz im1-im2
Doğrusu çıkarma yöntemleri, OpenCV yöntemi cv::absdiff
using namespace cv;
Mat im1 = imread("image1.jpg");
Mat im2 = imread("image2.jpg");
Mat diff;
absdiff(im1, im2, diff);
öneririm @Dat ve @ ssh99 tüm olumsuz farklılıkları öldürecek. Örneğin, BMP görüntünün bir piksel 20-70 = -50
, 50-80 = -30
, 30-90 = -60
ve tüm negatif sonuçları 0
arasında işaretsiz değer dönüştürülür, çünkü değer [0,0,0]
üretecek hem im1 - im2
ve diff(im1, im2, diff)
kullanılarak im2
için im1
ve [70, 80, 90]
değeri [20, 50, 30]
sahip olan Çoğu durumda, istediğin şey değildir. Metot absdiff
bunun yerine tüm çıkarmaların mutlak değerlerini hesaplar, böylece daha makul [50,30,60]
üretir.
Denerim arkadaşım. Teşekkürler – marionmaiden
Bu cevap modası geçmiş doğdu :) [DatChu cevap] (http://stackoverflow.com/a/2549246/2436175) günümüzde geçerli olan tek geçer. – Antonio
İlk bağlantı zaman aşımına uğradı, ikinci bağlantı öldü. – Twonky