【问题标题】:Not getting any error but image is not getting displayed in MATLAB没有出现任何错误,但图像没有显示在 MATLAB 中
【发布时间】:2019-12-20 07:04:29
【问题描述】:

我尝试使用神经网络开发一个程序来解决任何现实生活中的问题。 因此,我使用 MATLAB 使用概率神经网络进行了视网膜病变检测。我从教授那里得到了一些帮助并开发了这个程序。我已经训练了神经网络并创建了数据集,但是在测试我的神经网络时我没有得到输出...... 我是 MATLAB 新手,这是我在 MATLAB 中编写的第一个程序。

我已经创建了训练数据集并提供了输入图像来获取受影响的区域

clc;
clear all;
close all;
img=imread('nor4.jpg');
m=impixel(img);
dlmwrite('D:\Retinopathy detection\Training.csv',m,'-append');
%figure(1),imshow(img);

---实际实现代码---

clc;
clear all;
close all;
fileID = fopen('Training.csv');
C = textscan(fileID,'%f%f%f%f','Delimiter',',');
fclose(fileID);
x=[C{1} C{2} C{3}];
t=[C{4}];
s=input('Enter spread : ');
net = newpnn(x',t',s);
img=imread('trr.jpg');
[m,n,p]=size(img);
R=img(:,:,1);
G=img(:,:,2);
B=img(:,:,3);
RR=reshape(R,m*n,1);
GG=reshape(G,m*n,1);
BB=reshape(B,m*n,1);
Xtest=double([RR GG BB]);
Y = sim(net,Xtest');
Im=reshape(Y,m,n);
for i=1:1:m
    for j=1:1:n
        if Im(i,j)==1
            Newimg(i,j,:)=[230,166,122];
        else 
            Newimg(i,j,:)=img(i,j,:);
        end
    end 
end
figure(1),imshow(img);
figure(2),imshow(Newimg);`

当我运行这个程序时..我应该得到两个图像窗口,一个带有输入图像,第二个窗口将有视网膜病变检测区域..

但是当我运行程序时,我在图像窗口上是正确的,但是......在第二个窗口上,我只会得到绿色,或者如果我改变了值就会得到不同的颜色......。

你能帮我解决这个问题吗?我真的卡住了!!我没有得到教授的帮助。

【问题讨论】:

  • dlmwrite 将 3 列 RGB 数据写入 CSV 文件,但 textscan 从 CSV 文件中读回 4 列,导致 t 成为 NaNs 的向量。这是你想要的吗?考虑改用writematrixreadmatrix
  • 我会实现你的想法,先生!会告诉是否发生了什么事..谢谢????

标签: matlab image-processing neural-network image-recognition


【解决方案1】:

带有双重数据的 imshow 假定数据在 [0,1] 范围内,以便将数据映射到颜色。

试试:

imshow(mat2gray(Newimg));

这会在显示之前将您的数据重新缩放到 [0,1] 范围。

【讨论】:

  • 仍然得到相同的输出!! Newimg(i,j,:)=[230,166,122];错误就在这条线上,我想!
猜你喜欢
  • 2015-02-05
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多