Roberts算子,matlab代码实现

这段代码实现了Roberts算子的效果,笔者对其进行了加工,笔者认为这样可以快速的确定最合适的阈值范围,省去了很多的调试步骤!欢迎大家指正,谢谢大家!

clear;
img = imread('img2.jpg'); % 读取图像
img_gray = rgb2gray(img); % 转换成灰度图
[m,n] = size(img_gray); % 得到图像的大小
new_img_gray = img_gray; % 新建一个一样大的图像
pxValue = 0; % roberts计算所得到的像素值

% 对边界象素操作
for threshold_value=5:5:90
    for i=1:m-1
        for j=1:n-1
            pxValue = abs(img_gray(i,j)-img_gray(i+1,j+1))+...
            abs(img_gray(i+1,j)-img_gray(i,j+1));
            if(pxValue > threshold_value)
                new_img_gray(i,j) = 255;
            else
                new_img_gray(i,j) = 0;
            end
        end
    end
    subplot(3,6,threshold_value/5);
    imshow(new_img_gray);
    title(['thresholdvalue=',num2str(threshold_value)])
end
% 搬运请注明本文章链接,谢谢合作

 Roberts算子,matlab代码实现_第1张图片

 

Roberts算子,matlab代码实现_第2张图片

你可能感兴趣的:(Roberts算子,matlab代码实现)