from math import copysign, log10
import cv2
import os
import numpy as np
def main():
showLogTransformedHuMoments = True
filename ='C:/Users/Jarvis/Desktop/523/Selected_front/'
allFileList = os.listdir(filename)
for file in allFileList:
im = cv2.imread('C:/Users/Jarvis/Desktop/523/Selected_front/' + file,cv2.IMREAD_GRAYSCALE) #灰階
im = cv2.GaussianBlur(im,(3,3),0) #高斯模糊
canny = cv2.Canny(im, 50, 150) #邊緣檢測
_,im = cv2.threshold(im, 128, 255, cv2.THRESH_BINARY) #二值化
moment = cv2.moments(im)
huMoments = cv2.HuMoments(moment)
print("{}: ".format(filename+file),end='')
for i in range(0,7):
if showLogTransformedHuMoments:
print("{:.5f}".format(-1*copysign(1.0,huMoments[i])*log10(abs(huMoments[i]))),end=' ')
else:
print("{:.5f}".format(huMoments[i]),end=' ')
print()
main()