在OpenCV里实现雷登变换

由于CT在医院里已经起到很大的作用,为所有人带来前所未有的好处,那么深入地学习这种技术,以便设计出更好的CT机器,造福人类,永远是一个方向。在CT技术里,有一个从光电感应之后成像的问题要处理,就是从接收到X光的照片里重构原始图像出来,在这个重构的过程中要使用到radon变换,这个变换非常重要。下面就来使用OpenCV的函数来实现这样的变换:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import numpy as np
import cv2
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

#雷登变换
def radon(image, theta=None, circle=None):
    if theta is None:
        theta = np.arange(180)
    if circle is None:
        circle = False
    if circle:
        pass
    else:

        diagonal = np.sqrt(2) * max(image.shape)
        pad = [int(np.ceil(diagonal - s)) for s in image.shape]
        new_center = [(s + p) // 2 for s, p in zip(im

你可能感兴趣的:(OpenCV,opencv)