Matlab实现数字图像处理——点运算

数字图像处理实验——点运算

  • 点运算
    • 甄别
    • 上截断
    • 下截断
    • 上下截断
    • 多值甄别
    • 补偿
    • 平方
    • 方根
    • 求反
    • 放缩
    • 伽马变换

本文介绍matlab代码实现图像处理中常见的点运算。

点运算

主程序:

f = imread('outman.jpg');
gray_f = rgb2gray(f);
figure();
imshow(gray_f),title('原图');
thresholding(gray_f, 0.35);
uptruncation(gray_f, 100);
downtruncation(gray_f, 100);
multi_thresholding(gray_f, 50, 150, 250, 100,150,200);
updowntruncation(gray_f, 200,100);
offset(gray_f, 50);
square(gray_f);
squareroot(gray_f);
inverse(gray_f);
scaling(gray_f); 
gammaCorrection(gray_f, 1, 1);
gammaCorrection(gray_f, 1, 0.5);
gammaCorrection(gray_f, 1, 2);

Matlab实现数字图像处理——点运算_第1张图片
子函数:

甄别

function thresholding(image, threshold)
threshold_number = threshold;
thresholding = imbinarize(image,threshold_number);
figure();
imshow(thresholding),title('甄别');
end

Matlab实现数字图像处理——点运算_第2张图片

上截断

function uptruncation(image, floorholding)
[heighth, width] = size(image);
for i=1:heighth
    for j=1:width
        if (image(i,j)>floorholding)
            image(i,j)=floorholding;
        end
    end
end
figure();
imshow(image),title('上截断');
end

Matlab实现数字图像处理——点运算_第3张图片

下截断

function xiajieduan(image, floorholding)
[heighth, width] = size(image);
for i=1:heighth
    for j=1:width
        if (image(i,j)

Matlab实现数字图像处理——点运算_第4张图片

上下截断

function updowntruncation(image, upholding, lowholding)
[heighth, width] = size(image);
for i=1:heighth
    for j=1:width
        if (image(i,j)>upholding)
            image(i,j)=upholding;
        end
        if (image(i,j)

Matlab实现数字图像处理——点运算_第5张图片

多值甄别

function multi_thresholding(image, l1, l2, l3, t1, t2, t3)
    [heighth, width] = size(image);
for i=1:heighth
    for j=1:width
        if (image(i,j)t1 && image(i,j)t2 && image(i,j)t3)
            image(i,j)=255;
        end
    end
end
figure();
imshow(image),title('多值甄别');
end

Matlab实现数字图像处理——点运算_第6张图片

补偿

function offset(image, offsetvalue)
    offsetim = image + offsetvalue;
    figure();
    imshow(offsetim),title('补偿');
end

Matlab实现数字图像处理——点运算_第7张图片

平方

function square(image)
    squareim = image.*image;
    figure();
    imshow(squareim),title('平方');
end

Matlab实现数字图像处理——点运算_第8张图片

方根

function squareroot(image)
    image = im2double(image); 
    squareroot = image.^(1/2);
    figure();
    imshow(squareroot),title('方根');
end

Matlab实现数字图像处理——点运算_第9张图片

求反

function inverse(image)
[heighth, width] = size(image);
for i=1:heighth
    for j=1:width
        image(i,j)=255-image(i,j);
    end
end
figure();
imshow(image),title('求反');
end

Matlab实现数字图像处理——点运算_第10张图片

放缩

function scaling(image)
scaling = image.*2;
figure();
imshow(scaling),title('放缩');
end

Matlab实现数字图像处理——点运算_第11张图片

伽马变换

function gammaCorrection(name, a, gamma)
 r = name;
 r=im2double(r);                
 s = a * (r .^ gamma);
 figure();
 imshow(s), title(sprintf('Gamma: %0.1f',gamma));
end

Matlab实现数字图像处理——点运算_第12张图片
Matlab实现数字图像处理——点运算_第13张图片

Matlab实现数字图像处理——点运算_第14张图片

你可能感兴趣的:(数字图像处理,matlab,图像处理,计算机视觉)