mirror of
https://github.com/Laurent2916/REVA-QCAV.git
synced 2024-11-09 15:02:03 +00:00
28 lines
660 B
Python
28 lines
660 B
Python
import numpy as np
|
|
import pydensecrf.densecrf as dcrf
|
|
|
|
|
|
def dense_crf(img, output_probs):
|
|
h = output_probs.shape[0]
|
|
w = output_probs.shape[1]
|
|
|
|
output_probs = np.expand_dims(output_probs, 0)
|
|
output_probs = np.append(1 - output_probs, output_probs, axis=0)
|
|
|
|
d = dcrf.DenseCRF2D(w, h, 2)
|
|
U = -np.log(output_probs)
|
|
U = U.reshape((2, -1))
|
|
U = np.ascontiguousarray(U)
|
|
img = np.ascontiguousarray(img)
|
|
|
|
|
|
d.setUnaryEnergy(U)
|
|
|
|
d.addPairwiseGaussian(sxy=20, compat=3)
|
|
d.addPairwiseBilateral(sxy=30, srgb=20, rgbim=img, compat=10)
|
|
|
|
Q = d.inference(5)
|
|
Q = np.argmax(np.array(Q), axis=0).reshape((h, w))
|
|
|
|
return Q
|