灰度變換之灰度線性拉伸(算法1)


第一部分:分段(線性變換)函數

摘自百度百科:

灰度拉伸又叫:對比度拉伸,它是最基本的一種灰度變換,算法:使用的是最簡單的分段線性變換函數,它的主要思想是提高圖像處理時灰度級動態范圍

它可以有選擇的拉伸某段灰度區間以改善輸出圖像。如圖,所示的變換函數的運算結果是將原圖在a到b之間的灰度拉伸到c到d之間。如果一幅圖像的灰度集中在較暗的區域而導致圖像偏暗,可以用灰度拉伸功能來拉伸(斜率>1)物體灰度區間以改善圖像;同樣如果圖像灰度集中在較亮的區域而導致圖像偏亮,也可以用灰度拉伸功能來壓縮(斜率<1)物體灰度區間以改善圖像質量

 

 

原理:函數表達式

第二天睡飽了再看這個函數是如何構造的:選取了四個點(0,0) (x1,y1)  (x2,y2)  (255,255)

先計算斜率  然后再點斜式,(x1,y1)  (x2,y2)自己設定

然后可以不斷調整整個函數的圖像。

分段函數的圖像表達式:

代碼:

function out = MySegmentLinear(I,x1,x2,y1,y2)
%功能:實現灰度圖像的分段線性變換
%理論基礎:http://pan.baidu.com/s/1dFoFuSD
%輸入參數I是uint8類型的灰度圖像數據;

I=im2double(I);
[M,N] = size(I);
out = zeros(M,N);

for i=1:M
    for j=1:N
        if I(i,j)<x1
            out(i,j) = y1 * I(i,j) / x1;
        elseif I(i,j)>x2
            out(i,j) = (I(i,j)-x2)*(1-y2)/(1-x2) + y2;
        else
            out(i,j) = (I(i,j)-x1)*(y2-y1)/(x2-x1) + y1;
        end
    end
end

out=255.*out;
out=uint8(out);

end

  

 第二部分:RGB分別提取出3個圖像出來

_________________________________________________________________________________________________

  1. >> image = imread('D:\example.jpg');  
  2. >> image_r=image(:,:,1);  
  3. >> image_g=image(:,:,2);  
  4. >> image_b=image(:,:,3);  
  5. >> zero = zeros(size(image_r));  
  6. >> R=cat(3,image_r,zero,zero);  
  7. >> G=cat(3,zero,image_g,zero);  
  8. >> B=cat(3,zero,zero,image_b);  
  9. >> RGB=cat(3,image_r,image_g,image_b);  
  10. >> subplot(2,2,1),imshow(image_r),title('Red component');  
  11. >> subplot(2,2,2),imshow(image_g),title('green component');  
  12. >> subplot(2,2,3),imshow(image_g),title('blue component');  
  13. >> subplot(2,2,4),imshow(RGB),title('original image');  

 

 

 

 

 第三部分:彩色圖像對比度增強

image = imread('90.jpg');   %讀取一個圖片
image_r=image(:,:,1);      %提取分量組成的圖片
image_g=image(:,:,2);
image_b=image(:,:,3);
Sp_r=MySegmentLinear(image_r,0.3,0.7,0.00,1.00); %R分量組成的圖片進行對比度拉伸
Sp_g=MySegmentLinear(image_g,0.3,0.7,0.00,1.00);
Sp_b=MySegmentLinear(image_b,0.3,0.7,0.00,1.00);
RGB=cat(3,Sp_r,Sp_g,Sp_b);
imshow(RGB);

 

 效果:

 

原圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM