資源簡介
基于MATLAB圖像處理技術的,二值化圖像邊緣提取,能方便的提取出二值化圖像的邊緣,并以坐標點的形式存儲,后續應用。基于MATLAB圖像處理技術的,二值化圖像邊緣提取,能方便的提取出二值化圖像的邊緣,并以坐標點的形式存儲,后續應用。
代碼片段和文件信息
%由一幅2值化的漢字輪廓圖像順時針或逆時針獲取輪廓坐標
edgeIm?=?imread(‘D:\EdgeIm.bmp‘);
%figure?imshow(edgeIm);
%edgeIm中非零元素的坐標,即輪廓坐標
[i?j]?=?find(edgeIm);
%輪廓點數
numPoints?=?size(i?1);
curNum?=?0;
%初始搜索點坐標
currentR?=?i(1?1);
currentC?=?j(1?1);
%初始化輪廓點坐標
points?=?zeros(numPoints?2);
%開始搜索
curNum?=?curNum?+?1;
points(curNum:)?=?[currentR?currentC];
edgeIm(currentR?currentC)?=?0;
while?curNum?~=?numPoints;
?if?edgeIm(currentR?currentC-1)?==?1;
?curNum?=?curNum?+?1;
?currentC?=?currentC?-?1;
?points(curNum:)?=?[currentR?currentC];
?edgeIm(currentR?currentC)?=?0;
?elseif?edgeIm(currentR-1?currentC-1)?==?1;
?curNum?=?curNum?+?1;
?currentR?=?currentR?-?1;
?currentC?=?currentC?-?1;
?points(curNum:)?=?[currentR?currentC];
?edgeIm(currentR?currentC)?=?0;
?elseif?edgeIm(currentR-1?currentC)?==?1;
?curNum?=?curNum?+?1;
?currentR?=?currentR?-?1;
?points(curNum:)?=?[currentR?currentC];
?edgeIm(currentR?currentC)?=?0;
- 上一篇:基于cnn的灰度圖像邊緣檢測
- 下一篇:關于粗糙集的matlab計算
評論
共有 條評論