首页 > 解决方案 > 没有出现任何错误,但图像没有显示在 MATLAB 中

问题描述

我试图使用神经网络开发一个程序来解决任何现实生活中的问题。因此,我使用 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);`

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

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

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

标签: matlabimage-processingneural-networkimage-recognition

解决方案


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

尝试:

imshow(mat2gray(Newimg));

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


推荐阅读