I keep getting the error " Index exceeds matrix dimensions." How do I fix this?

3 ビュー (過去 30 日間)
Mercedes Young
Mercedes Young 2018 年 3 月 21 日
回答済み: Walter Roberson 2018 年 3 月 21 日
%1
Self=imread('selfie.jpg');
P = rgb2gray(Self);
% figure
% subplot(1,2,1)
% %2
% imshow(P); title('Histogram Equalization')
% subplot(1,2,2)
% imhist(P,64)
% J = histeq(P);
% figure
% subplot(1,2,1)
% imshow(J); title('Enhanced Histogram Equalization')
% subplot(1,2,2)
% imhist(J,64)
% %3 Histogram Specification
%imgr=P(:,:,1);
imgg=P(:,:,2);
imgb=P(:,:,3);
imgr2=Self(:,:,1);
imgg2=Self(:,:,2);
imgb2=Self(:,:,3);*_
Hnimgr2= imhist(imgr2);
Hnimgg2= imhist(imgg2);
Hnimgb2= imhist(imgb2);*
outr=histeq(imgr,Hnimgr2);
outg=histeq(imgg,Hnimgg2);
outb=histeq(imgb,Hnimgb2);
histsp(:,:,1) = outr;
histsp(:,:,2) = outg;
histsp(:,:,3) = outb;
figure;
subplot(221);imshow(Self);title('Refrence Image');
subplot(222);imshow(P);title('Input Image');
subplot(224);imshow(histsp);title('Result Image');
Plot for Histogram Specification
figure;
subplot(331);plot(Hnimgr);title('Red Input');
subplot(334);plot(Hnimgg);title('Green Input');
subplot(337);plot(Hnimgb);title('Blue Input');
subplot(332);plot(Hnimgr2);title('Red Reference');
subplot(335);plot(Hnimgg2);title('Green Reference');
subplot(338);plot(Hnimgb2);title('Blue Reference');
subplot(333);plot(outr);title('Red Result');
subplot(336);plot(outg);title('Green Result');
subplot(339);plot(outb);title('Blue Result');
The error starts at line 19

回答 (1 件)

Walter Roberson
Walter Roberson 2018 年 3 月 21 日
You did rgb2gray(). The result is, by definition, grayscale, which only has one color channel.

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by