在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(image.shape, pad)]
        old_center = [s // 2 for s in image.shape]
        pad_before = [nc - oc for oc, nc in zip(old_center, new_c

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览