zhanglele10的个人博客分享 http://blog.sciencenet.cn/u/zhanglele10

博文

利用MATLAB标记处图片中的版块区域

已有 6152 次阅读 2016-12-29 19:47 |个人分类:Matlab学习心得|系统分类:科研笔记

参考资料:http://blog.csdn.net/shaoxiaohu1/article/details/40272531

测试图片:


代码如下:

>>img = imread('test2.jpg');
>> gray_img = rgb2gray(img);
>> T = graythresh(gray_img);
>> bw_img = im2bw(gray_img, T);
>> img_reg = regionprops(bw_img,  'area', 'boundingbox');
>> areas = [img_reg.Area];
>> rects = cat(1,  img_reg.BoundingBox);
>> figure(1)
>> imshow(bw_img);
>> for i = 1:size(rects, 1)  
           rectangle('position', rects(i, :), 'EdgeColor', 'r');  
     end

% 以上代码已经可以标记处全部斑块

% 以下代码用于标记最大斑块
>> [~, max_id] = max(areas);
>> max_rect = rects(max_id, :);
>> figure(2),
>> imshow(bw_img);
>> rectangle('position', max_rect, 'EdgeColor', 'r')

这个代码虽然是MATLAB简单的一个图像算法,之所以想把它记下来就是可以联想到很多遥感图像处理方面的应用,先记下来吧,以后绝对用得着




https://blog.sciencenet.cn/blog-1103122-1024140.html

上一篇:提取出HDF文件中的经纬度信息
下一篇:MATLAB读取ERA和NCEP数据以及写入新的nc文件
收藏 IP: 223.220.159.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-27 22:38

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部