을 MATLAB 7.7
에 구현하려고합니다. 이것은 내 original image
이 보이는 것입니다 :MATLAB의 로컬 임계 값
본 단어 Test
은 검은 색으로 덮여 있습니다. 이 이미지는 919x551
인 PNG
이미지입니다. 이 이미지에 로컬 임계 값을 적용하여 단어 Test
이 명확하게 표시되도록 할 수 있습니다.
전체 이미지를 60 * 60 블록의 하위 이미지로 나누어 작동하는 다음 코드를 구현했습니다.
그러나 내가 그렇게 할 때 원하는 출력을 얻지 못하고 있습니다.
내 코드 :
clc;
clear all;
close all;
im = imread('C:\samples\test100.png');
subplot(3,3,1);
imshow(im);
title('original image');
im = rgb2gray(im);
im = double(im);
subplot(3,3,2);
imshow(im);
title('gray scale image');
[row col] = size(im);
max_im = max(max(im));
h = zeros(1,max_im+1);
!1st block
for n = 1:1:60
for m = 1:1:60
a(n,m) = im(n,m);
end
end
a = a+1;
for n = 1:1:60
for m = 1:1:60
t = a(n,m);
h(t) = h(t)+1;
end
end
subplot(3,3,3);
bar(h)
[X,Y] = ginput(1);
for n = 1:1:60
for m = 1:1:60
if a(n,m)<X
a(n,m) = 0;
else
a(n,m) = 255;
end
end
end
subplot(3,3,4);
imshow(uint8(a))
title('1st block image');
!2nd block
for n = 1:1:60
for m = 61:1:60
b(n,m-60) = im(n,m)
end
end
b = b+1;
for n = 1:1:60
for m = 1:1:60
t = b(n,m);
h(t) = h(t)+1;
end
end
figure(2)
bar(h)
[X,Y] = ginput(1);
for n = 1:1:60
if b(n,m)<X
b(n,m) = 0;
else
b(n,m) = 255;
end
end
imshow(uint8(b))
!3rd block
for n = 61:1:120
for m = 1:1:60
c(n-60,m) = im(n,m);
end
end
c = c+1;
for n = 1:1:60
for m = 1:1:60
t = c(n,m);
h(t) = h(t)+1;
end
end
figure(3)
bar(h)
[X,Y] = ginput(1);
for n = 1:1:60
for m = 1:1:60
if c(n,m)< X
c(n,m) = 0;
else
c(n,m) = 255;
end
end
end
imshow(uint8(c))
!final block
for n = 1:1:row
for m = 61:1:col
d(n-60,m-60) = im(n,m);
end
end
d = d+1;
for n = 1:1:60
for m = 1:1:60
t = d(n,m);
h(t) = h(t)+1;
end
end
figure(4);
bar(h);
[X,Y] = ginput(1);
for n = 1:1:60
for m = 1:1:60
if d(n,m)<X
d(n,m) = 0;
else
d(n,m) = 255;
end
end
end
imshow(uint8(d))
s = [a b;c d];
figure(5);
imshow(uint(s))
내가 같은 오류 얻을 전체 코드를 실행하려고 :
을 ??? 정의되지 않은 함수 또는 'char'유형의 입력 인수에 대한 'local'
그러나 첫 번째 블록의 코드 만 실행하면 다음 출력이 표시됩니다.
가 어떻게 함께 병합 한 후 서브 이미지를 만들고으로 Test
보이는 단어를 얻을 것이다 ?
"로컬 임계 값"에 대한 설명과 하위 이미지 문제를 해결하는 방법에 대한 링크를 제공 할 수 있습니까? –
http://www.mathworks.com/matlabcentral/fileexchange/8647-local-adaptive-thresholding –