MATLAB如何将图片中有颜色的区域增加轮廓线,要求相同颜色区域的边缘形成一条封闭的线,有几种颜色就会有几条轮廓线,最后的结果一张黑白的图,里面有几条白色轮廓线
MATLAB给彩色图像增加轮廓线
MATLAB如何将图片中有颜色的区域增加轮廓线,要求相同颜色区域的边缘形成一条封闭的线,有几种颜色就会有几条轮廓线,最后的结果一张黑白的图,里面有几条白色轮廓线
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 臨城夏目 2023-05-31 11:25关注
在MATLAB中,可以使用edge函数来实现将图片中有颜色的区域增加轮廓线的功能。具体步骤如下:
1.读入图片并将其转换为灰度图像。rgbImage = imread('your_image.png'); grayImage = rgb2gray(rgbImage);
2.对灰度图像进行边缘检测,产生包含轮廓线信息的二值图像。
bwImage = edge(grayImage);
3.对二值图像进行连通性分析,将相邻的白色像素标记为同一个区域。
cc = bwconncomp(bwImage);
4.将每个区域的边缘提取出来,形成一条封闭的线。这里使用MATLAB中的regionprops函数进行处理。
props = regionprops(cc, 'PixelList');
5.将这些线绘制在一个空白图像上,得到最终的结果。
bwOut = zeros(size(bwImage)); % 创建一个空白图像 for i = 1:length(props) % 获取当前区域的像素坐标 pixelList = props(i).PixelList; % 添加当前区域的轮廓线到空白图像上 bwOut(sub2ind(size(bwOut), pixelList(:,2), pixelList(:,1))) = 1; end
最终得到的bwOut即为包含所有白色区域轮廓线的黑白二值图像,其中白色区域的轮廓线形成了相应的白色线条。可以使用imshow函数或imwrite函数来显示或保存该图像。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 无法输出helloworld
- ¥15 高通uboot 打印ubi init err 22
- ¥20 PDF元数据中的XMP媒体管理属性
- ¥15 R语言中lasso回归报错
- ¥15 网站突然不能访问了,上午还好好的
- ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
- ¥15 semrush,SEO,内嵌网站,api
- ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
- ¥15 振荡电路,ADS仿真
- ¥15 关于#c语言#的问题,请各位专家解答!