使用图像分割算法分割之后得到的图形,用什么方法可以将其拟合成一条曲线,以此来得到图形的弯曲角度
曲率的计算公式如下
转换成python后长这样子:
import numpy as np
import cv2
from skimage import color
import matplotlib.pyplot as plt
import imageio
img = cv2.imread("xxx.jpg")
img = color.rgb2gray(img)
x , y = np.gradient(img) #一阶导数
xx, xy = np.gradient(x) #二阶偏导数
yx, yy = np.gradient(y) #二阶偏导数
Iup = (1+x*x)*yy - 2*x*y*xy + (1+y*y)*xx #公式的分子
Idown = np.power((2*(1 + x*x + y*y)),1.5) #公式的分母
final = Iup/Idown
final=abs(final)
final = (final-final.min())/(final.max()-final.min()) #将结果归一化
final = final * 255 #将像素值扩展为0-255
final = final.astype(np.uint8)
plt.imshow(final)
final 就是最后求得的曲率值