2011-02-14 14 views

cevap

132

Bir genel prosedür the wikipedia article on unsharp masking ortaya serilir: Sen gauss yumuşatma filtresi kullanmak ve (sabit alanının değerleri sabit kalacak şekilde ağırlıklı şekilde) orijinal görüntüden düzleştirilmiş versiyonunu çıkarma.

image içine frame bir bilenmiş sürümünü almak için: (hem cv::Mat)

cv::GaussianBlur(frame, image, cv::Size(0, 0), 3); 
cv::addWeighted(frame, 1.5, image, -0.5, 0, image); 

parametreleri kendiniz ayarlamak gereken bir şey vardır.

Ayrıca laplacian bileme var, google olduğunuzda bir şey bulmak gerekir. Bununla

+0

unsharp ait Photoshop'un sonucu Maske çoğaltmak için bir yolu var mı? – Royi

+0

@Drazick Soruyor musunuz, çünkü kopyalanamaz mı? wikipedia bağlantısı yukarıda verilmiştir. [digital_unsharp_masking] (https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking) spesifik – tilaprimera

+0

@ tilaprimera olması için, Photoshop'un USM'sinin "Klasik" USM'den farklı olması nedeniyle soruyorum. – Royi

-4

Dene:

cv::bilateralFilter(img,9,75,75); 

Sen bulabilir fazla bilgi here

+6

Soru, kenar düzeltme yumuşatma değil görüntü keskinleştirme hakkındadır. –

12

yaklaşık OpenCV Documentation

değişen değerlerde algoritması "keskin olmayan maske" kullanarak görüntüyü keskinleştirme bir örnek kodunu bulabilirsiniz sigma, threshold, amount'un farklı sonuçları verecektir

// sharpen image using "unsharp mask" algorithm 
Mat blurred; double sigma = 1, threshold = 5, amount = 1; 
GaussianBlur(img, blurred, Size(), sigma, sigma); 
Mat lowContrastMask = abs(img - blurred) < threshold; 
Mat sharpened = img*(1+amount) + blurred*(-amount); 
img.copyTo(sharpened, lowContrastMask); 
İlgili konular