我必须对图像进行二值化,因此白色像素的数量是黑色像素的两倍。 有人给了我答案:
binarized = im2bw(image, 0.28)
而且我不知道这个人怎么知道0.28级的白色是黑色的两倍? 在这段代码中,我不得不使用gamma校正,使用imhist,binarize。我的代码:
close all;
clear all;
clc;
img = imread('cameraman.tif');
img = double(img)/255;
coeff = 0.6;
gamma = img.^coeff;
figure;
subplot(121); imshow(img); title('Oryginalny');
subplot(122); imshow(gamma); title('Po korekcji gamma');
equalized = histeq(gamma,32);
figure;
subplot(221); imshow(gamma); title('Po korekcji gamma');
subplot(222); imshow(equalized); title('Wyrównany');
subplot(223); imhist(gamma); title('Po korekcji gamma');
subplot(224); imhist(equalized); title('Wyrównany');
SE = strel('disk', 3);
eroded = imerode(equalized,SE);
opening = imdilate(eroded,SE);
figure;
subplot(121); imshow(equalized); title('Wyrównany');
subplot(122); imshow(opening); title('Otwarcie');
binarized = im2bw(opening, 0.28);
figure;
imshow(binarized); title('Po binaryzacji');
w = binarized == 1;
b = binarized == 0;
biale = sum(w(:));
czarne = sum(b(:));