💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
Otsu方法是一种常用的图像分割技术,旨在将图像分成具有统计学意义的不同区域。该方法基于图像的灰度直方图,通过寻找一个阈值来将图像分成两个类别,使得类别内的方差最小化或方差之和最大化。这个阈值可以将图像中的前景和背景等不同区域有效地分开。Otsu方法适用于许多图像分割应用,包括目标检测、图像分析和模式识别等领域。
📚2 运行结果
主函数部分代码:
clc; clear;
%% Read the original image
fig_original = remap_image(double(imread('data/building.tif')));
imwrite(fig_original, 'data/building.png');
figure('Name', 'Original image');
imshow(fig_original, []);
%% Roberts edge detector
figure('Name', 'Roberts edge detector');
gx = [-1 0;0 1];
gy = [0 -1;1 0];
subplot(1, 3, 1);
edge_x = remap_image(abs(filter2(gx, fig_original)));
imshow(edge_x, []);
imwrite(edge_x, 'data/roberts_x.png');
subplot(1, 3, 2);
edge_y = remap_image(abs(filter2(gy, fig_original)));
imshow(edge_y, []);
imwrite(edge_y, 'data/roberts_y.png');
subplot(1, 3, 3);
imshow(remap_image(edge_x + edge_y), []);
imwrite(remap_image(edge_x + edge_y), 'data/roberts_xy.png');
%% Prewitt edge detector
figure('Name', 'Prewitt edge detector');
gx = [-1 -1 -1;0 0 0;1 1 1];
gy = [-1 0 1;-1 0 1;-1 0 1];
subplot(1, 3, 1);
edge_x = remap_image(abs(filter2(gx, fig_original)));
imshow(edge_x, []);
imwrite(edge_x, 'data/prewitt_x.png');
subplot(1, 3, 2);
edge_y = remap_image(abs(filter2(gy, fig_original)));
imshow(edge_y, []);
imwrite(edge_y, 'data/prewitt_y.png');
subplot(1, 3, 3);
imshow(remap_image(edge_x + edge_y), []);
imwrite(remap_image(edge_x + edge_y), 'data/prewitt_xy.png');
%% Sobel edge detector
figure('Name', 'Prewitt edge detector');
gx = [-1 -2 -1;0 0 0;1 2 1];
gy = [-1 0 1;-2 0 2;-1 0 1];
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[[1]王非凡,陈希爱,任卫红等.基于图像自适应增强的低照度目标检测算法[J/OL].计算机工程:1-13[2024-03-11].https://doi.org/10.19678/j.issn.1000-3428.0068407.