f = imread('D:\Tuxiangchuli\Holiday training\test01.jpg'); thresh=graythresh(f) t=imbinarize(f,thresh); [rows, cols] = size(t); g=[]; q=[]; for i=1:1075 a=sum(t(i,:)); if a==760 continue elseif sum(t(i,:))<760&&sum(t(i-1,:))==760 g=[g,i]; elseif sum(t(i,:))<760&&sum(t(i+1,:))==760 j=i; q=[q,j]; end end c=[]; d=[]; for j=1:760 b=sum(t(:,j)); if b==760 continue elseif sum(t(:,j))<1075 &&sum(t(:,j-1))==1075 c=[c,j]; elseif sum(t(:,j))<1075 &&sum(t(:,j+1))==1075 i=j; d=[d,i]; end end r={length(g),length(c)}; for i=1:length(g) w=t(g(i):q(i),:); for j=1:length(c) s=w(:,c(j):d(j)-2); r{i,j}=s; end end u={} for i=1 for j=1 [rows,cols]=size(r{i,j}) for k=1:rows rr=sum(r{i,j}(k,:)) if rr==cols continue elseif rr<cols u=[u;r{i,j}(k,:)]; end end end end imshow(u{1,1})为什么不能显示我想要的整个图片
时间: 2024-04-14 08:25:31 浏览: 139
写入图像:如何写入图像和使用 .jpg 文件格式,更改质量并找到其压缩率-matlab开发
根据您提供的代码,可以看出您正在尝试将一张图片进行二值化处理,并将其划分为多个子图像。然后,您想显示其中一个子图像。
在代码的最后一行,您使用了 `imshow(u{1,1})` 来显示一个子图像,但是可能会出现无法显示整个图片的问题。这可能是由于以下原因之一:
1. 您的代码中缺少了 `figure` 函数来创建一个新的图像窗口。在显示图像之前,您可以尝试添加 `figure` 函数,如下所示:
```matlab
figure;
imshow(u{1,1});
```
2. 子图像 `u{1,1}` 的大小可能超出了当前图像窗口的显示范围。您可以尝试调整图像窗口的大小,以确保能够显示整个图像。您可以尝试添加以下代码来设置图像窗口的大小:
```matlab
figure('Position', [100, 100, size(u{1,1}, 2), size(u{1,1}, 1)]);
imshow(u{1,1});
```
通过调整图像窗口的位置和大小,您应该能够显示所需的整个图片。如果问题仍然存在,请提供更多关于问题的详细信息,以便我能够更好地帮助您解决问题。
阅读全文