如何将图像二值化,Matlab

时间:2014-09-03 09:20:40

标签: matlab

我必须对图像进行二值化,因此白色像素的数量是黑色像素的两倍。 有人给了我答案:

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(:));

0 个答案:

没有答案