+
ys
in
θ
−
ρ
)
雷登变换将二维空间
from scipy import ndimage
def discreteRadonTransform(image, steps):
channels = image.shape[0]
res = np.zeros((channels, channels), dtype=np.float32)
for s in range(steps):
rotation = ndimage.rotate(image, -s * 180/steps, reshape=False).astype(np.float32)
res[:, s] = sum(rotation)
return res
plt.figure(figsize=(9, 7))
fileImg = ["Fig0534a.tif", "Fig0534b.tif", "Fig0534c.tif"]
for i in range(len(fileImg)):
img = cv2.imread("../images/"+fileImg[i], flags=0)
imgRadon = discreteRadonTransform(img, img.shape[0])
print(img.shape, imgRadon.shape)
plt.subplot(2, len(fileImg), i + 1), plt.axis('off')
plt.title("origin image"), plt.imshow(img, 'gray')
plt.subplot(2, len(fileImg), i + len(fileImg) + 1), plt.axis('off')
plt.title("Radon transform"), plt.imshow(imgRadon, 'gray')
plt.tight_layout()
plt.show()
(本节完)
雷登变换是三维重建的数学基础。雷登变换将二维空间 $xy$ 映射到了另一个二维空间 $\alpha s$,称为直线空间。雷登变换常被用于医学影像处理,利用反雷登变换可以进行三维图像重建。
首先,我说说为什么想做一个图像中心点的正弦图。
当我们照CT的时候,考虑一个二维平面,如果物体永远放置在扫描仪的正中心,那么这个二维物体这正中心,一定是最中间的那个光子探测器探测到的。所以,无论光子以如何的角度投射这个物体(二维),如果我们只讨论中心位置的话,那只用考虑中间那个探测器的值就行了。
(好吧,我承认我这么写是为了偷懒。但是只有实现了最理想的...
转载自:http://www.cnblogs.com/pakfahome/p/3914318.html给源图像增加边界cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value)
src:源图像top,bottem,left,right: 分别表示四个方向上边界的长度borderType: 边界的类型有以下几种:
BORDER_
图像的八种
变换1. 图像放大、缩小1.1 放大1.2 缩小2. 图像平移2.1 向右下平移2.1 向左上平移3. 图像旋转4. 图像仿射
变换5. 图像裁剪6. 位运算(AND,OR,XOR)6.1AND(与运算)6.2 OR(或运算)7. 图像的分离和融合7.1 分离7.2 融合8. 颜色空间8.1 灰度8.2 HSV(色度、饱和度、纯度)8.1 lab
1. 图像放大、缩小
import cv2
import matplotlib.pyplot as plt
import numpy as np
1.https://zhuanlan.zhihu.com/p/79722768
2.https://blog.csdn.net/qq_33837704/article/details/79504530
3.https://blog.csdn.net/yu132563/article/details/99228303
图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数f(x, y),则其投影就是在特定方向上的线性积分,比如f(x, y)在垂直方向上的线性积分就是其在x轴上的投影;f(x, y)在水平方向上的线积分就是其在y轴上的投影。通过这些投影,可以获取图像在指定方向上的突出特性,这在图像模式识别等处理中可能会用到。
Radon变换(拉东变换),就是将数字图像矩
opencv_world454d.dll和opencv_aruco343d.lib opencv_bgsegm343d.lib opencv_bioinspired343d.lib opencv_calib3d343d.lib opencv_ccalib343d.lib opencv_core343d.lib
"opencv_world454d.dll"是OpenCV库的一个打包文件,包含了所有模块和功能的代码。而"opencv_aruco343d.lib"、"opencv_bgsegm343d.lib"、"opencv_bioinspired343d.lib"、"opencv_calib3d343d.lib"、"opencv_ccalib343d.lib"、"opencv_core343d.lib"等是OpenCV库的单独模块,每个模块对应一个库文件。
如果您的应用程序需要使用OpenCV的所有模块和功能,那么可以使用"opencv_world454d.dll",这样可以简化链接过程。如果您只需要使用其中的某些模块和功能,那么可以使用对应的库文件。在链接时,您需要将需要使用的库文件添加到项目中,这样编译器就可以找到并链接这些库文件。
请注意,库文件的名称和版本号会随着OpenCV版本的更新而变化。在使用库文件时,需要根据实际情况选择正确的库文件。