%2.1 s=imread('C:\Users\hp\Desktop\yy.PNG');%读入原图像 i=rgb2gray(s) i=double(i) j=fft2(i); %傅里叶变换 k=fftshift(j); % 直流分量移到频谱中心 l=log(abs(k)); %对数变换 m=fftshift(j); %直流分量移到频谱中心 RR=real(m); %取傅里叶变换的实部 II=imag(m); %取傅里叶变换的虚部 A=sqrt(RR.^2+II.^2); %计算频谱府幅值 A=(A-min(min(A)))/(max(max(A)))*255; % 归一化 b=circshift(s,[800 450]); %对图像矩阵im中的数据进行移位操作 b=rgb2gray(b) b=double(b) c=fft2(b); %傅里叶变换 e=fftshift(c); % 直流分量移到频谱中心 l=log(abs(e)); %对数变换 f=fftshift(c); %直流分量移到频谱中心 WW=real(f); %取傅里叶变换的实部B ZZ=imag(f); %取傅里叶变换的虚部 B=sqrt(WW.^2+ZZ.^2); %计算频谱府幅值 B=(B-min(min(B)))/(max(max(B)))*255; % 归一化 subplot(2,2,1);imshow(s);title('原图像') subplot(2,2,2);imshow(uint8(b));;title('平移图像') subplot(2,2,3);imshow(A);title('离散傅里叶频谱'); subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱')
时间: 2024-04-02 16:34:53 浏览: 22
在这段代码中,%2.1s并不是一个独立的变量或者关键字,它是作为字符串格式化控制符出现的。具体来说,%2.1s表示格式化输出一个字符串,其中2表示最小宽度为2,如果不足2位则在左侧补空格;.1表示精度为1,即只输出字符串中的第一个字符。但是在这段代码中,%2.1s并没有被用于实际的输出,可能是代码作者误用了该控制符,或者是没有删除掉该控制符的残留代码。
相关问题
不用camp参数,换一个img1 = imread('gray_image1.jpg', cmap='gray') img2 = imread('gray_image2.jpg', cmap='gray') img3 = imread('gray_image3.jpg', cmap='gray')
如果您不想使用`cmap`参数来指定灰度图像的颜色映射,您可以在读取图像后使用Matplotlib库中的`cmap`函数将图像转换为灰度图像。
以下是一个示例代码:
```python
import matplotlib.pyplot as plt
from matplotlib.image import imread
import matplotlib.cm as cm
# 读取三张彩色图像
img1 = imread('color_image1.jpg')
img2 = imread('color_image2.jpg')
img3 = imread('color_image3.jpg')
# 将彩色图像转换为灰度图像
gray_img1 = cm.rgb2gray(img1)
gray_img2 = cm.rgb2gray(img2)
gray_img3 = cm.rgb2gray(img3)
# 创建一个大小为1x3的子图布局,并在每个子图中显示一张灰度图像
fig, axs = plt.subplots(1, 3, figsize=(10, 5))
axs[0].imshow(gray_img1, cmap='gray')
axs[0].set_title('Image 1', size=10)
axs[0].axis('off')
axs[1].imshow(gray_img2, cmap='gray')
axs[1].set_title('Image 2', size=10)
axs[1].axis('off')
axs[2].imshow(gray_img3, cmap='gray')
axs[2].set_title('Image 3', size=10)
axs[2].axis('off')
# 显示图像
plt.show()
```
这个示例代码假设您已经将三张彩色图像保存在'color_image1.jpg','color_image2.jpg'和'color_image3.jpg'文件中,且这些文件位于您的Python代码文件的同一目录下。我们使用Matplotlib库中的`rgb2gray`函数将彩色图像转换为灰度图像,并将转换后的灰度图像存储在`gray_img1`,`gray_img2`和`gray_img3`变量中。然后,我们使用`imshow`函数在每个子图中显示一张灰度图像,并使用`set_title`函数为每个子图添加标题。最后,使用`axis`函数关闭坐标轴的显示。
优化# 读取三张灰度图像 img1 = imread('gray_image1.jpg', cmap='gray') img2 = imread('gray_image2.jpg', cmap='gray') img3 = imread('gray_image3.jpg', cmap='gray')
您可以将读取灰度图像的代码优化为循环,以减少代码重复。例如:
```python
import matplotlib.pyplot as plt
from matplotlib.image import imread
# 图像文件名列表
file_names = ['gray_image1.jpg', 'gray_image2.jpg', 'gray_image3.jpg']
# 读取灰度图像并存储到列表中
gray_images = []
for file_name in file_names:
gray_images.append(imread(file_name, cmap='gray'))
# 创建一个大小为1x3的子图布局,并在每个子图中显示一张灰度图像
fig, axs = plt.subplots(1, 3, figsize=(10, 5))
for i in range(3):
axs[i].imshow(gray_images[i], cmap='gray')
axs[i].set_title('Image {}'.format(i+1), size=10)
axs[i].axis('off')
# 显示图像
plt.show()
```
这个示例代码中,我们首先定义了一个包含灰度图像文件名的列表`file_names`。然后,我们使用循环读取每个文件中的灰度图像,并将它们存储在一个名为`gray_images`的列表中。最后,我们使用循环在一个大小为1x3的子图布局中显示这三张灰度图像,并为每个子图添加标题。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)