我正在尝试阅读GIF文件并以下列格式显示 -
Grey Scale
Resized
Double Image
Thinning
Inverted
以下是我的代码(不完整):
clear all;
close all;
clc;
%Various preprocessing of Images
checkimage=imread('CheckSign/sign.gif');
checkimage_resize=imresize(checkimage,[512, 512]);
checkimage_grey=rgb2gray(checkimage_resize);
[m n p] = size(checkimage_grey)
for i=1:n
for j=1:m
if(checkimage_grey(i,j) ~= 0)
bimage(i,j) = 1;
else
bimage(i,j) = 0;
end
end
end
subplot (2,3,1),imshow(checkimage),title('Original Image');
subplot (2,3,2),imshow(checkimage_resize),title('Resized Image');
subplot (2,3,3),imshow(checkimage_grey),title('Grey Scale Image');
subplot (2,3,4),imshow(bimage),title('Binary Image');
但我收到以下错误:
Error using rgb2gray>parse_inputs (line 81)
MAP must be a m x 3 array.
Error in rgb2gray (line 35)
X = parse_inputs(varargin{:});
Error in preprocessing (line 8)
checkimage_grey=rgb2gray(checkimage_resize);
在使用imtool查看图像时,我看到一个像素信息:
Pixel (X,Y) index [R,G,B]
<213>
R 0.80
G 0.80
B 1.00
现在我不知道如何阅读这种索引文件并转换为灰度级文件?
另外,如何将关注的图像更改为double,thinning和Inverted Imagesformat?
如果我没错,倒置图片为 1 - bimage ?
答案 0 :(得分:2)
对于索引图像,您需要读取索引以及colorap
[ind map] = imread( 'CheckSign/sign.gif' );
获得所需信息后,可以使用ind2rgb
将索引图转换为RGB图像
checkimage_rgb = ind2rgb( ind, map );
你不需要嵌套for
- 循环来“反转”颜色,这就够了
bimage = checkimage_grey ~= 0;
inverted = 1 - bimage;