这段代码实现了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
% 搬运请注明本文章链接,谢谢合作