0
我想在Python實現比這個職位的相同功能的本地規範化:linkPython的 - 在OpenCV中
但是,我不能得到平滑的結果,無論我試試,儘管我都嘗試實施,提供了更正的OP和第二個答案。
我可能錯過了一些小東西,但我找不出什麼。
def local_norm(img, sigma_1, sigma_2):
float_gray = img * cv2.CV_32FC1/255.0
blur_1 = int(2 * np.ceil(- norm.ppf(0.05, loc=0, scale=sigma_1)) + 1)
blurred_1 = cv2.GaussianBlur(float_gray, (blur_1, blur_1), sigma_1, sigma_1)
temp_1 = float_gray - blurred_1
temp_2 = cv2.pow(temp_1, 2.0)
blur_2 = int(2 * np.ceil(- norm.ppf(0.05, loc=0, scale=sigma_2)) + 1)
blurred_2 = cv2.GaussianBlur(temp_2, (blur_2, blur_2), sigma_2, sigma_2)
temp_2 = cv2.pow(blurred_2, 0.5)
float_gray = temp_1/temp_2
res = cv2.normalize(float_gray, 0, 255, cv2.NORM_MINMAX)
res = res * cv2.CV_32S
return res
我必須精確,以至於到了最後,我用cv2.CV_32S
因爲與OP的編碼我結束了一個黑色的圖像。其餘的,我使用相同的西格瑪,2.0和20.0。
我現在得到了很好的效果, 謝謝 ! –