图形图像处理之——实现图形图像子区域额提取3

博主改进了之前的图像处理工作,成功实现了一张图片的子区域提取,目前能将图片居中显示。下一步目标是进行批量处理。代码分享展示了如何提取并显示图片的6个特定部分。
摘要由CSDN通过智能技术生成

        今天把之前没完成的工作又拿出来改进了下,基本实现了想要的结果,但是只局限在一张图片上面,接下来的工作就是实现批量处理,相信通过努力,最终会实现的。

现在图片能够居中显示了,哈哈。还是分享出代码吧:

image=imread('E:\qw1.jpg');
load trees;
%%——————————————处理图片,提取6个贝母的边缘————————————%%
[H,S,V]=rgb2hsv(image);%step1:获取图片HSV分量,分别代表色调,饱和度,亮度
hMedian=median(median(H));%step2:提取中位数以下H分量,进行二值化
hBw1=im2bw(H,hMedian);%step3:二值化,阈值为hMedian
HBelowMedian=H.*(~hBw1);%step4:剩余H二值化
hBw2=im2bw(HBelowMedian,graythresh(HBelowMedian));%二值化,阈值为graythresh(HBelowMedian)
for i=1:size(image,1)
    bwImage(i,:)=bitxor(hBw1(i,:),hBw2(i,:));%%将hBw1和hBw2异或得到结果
end
bwImage=~bwImage;%图像取反
[B0,L0] = bwboundaries(bwImage,'noholes');%边界跟踪,返回划分的区域L0,noholes算法只搜索目标的外边界。
stats = regionprops(L0,'Area');%regionprops测量每个标签区域L0的属性
[sortAfter,Index] = sort([stats(:,:).Area],'descend');%对数组进行降序排序,并返回排序后的数组



%————————————————————————————————————%
%%——————————————处理第1个贝母——————————————%%
%————————————————————————————————————%

LL1 = ismember(L0,Index(1));%判断一个集合是否为另一个的子集,此地方是。
bwImage1 = bwlabel(LL1);%进行标注
bwImage1 = imfill(bwImage1,'holes');%%对二值图像中的目标孔进行填充点
stats1=regionprops(bwImage1,'Centroid');
x1=stats1.Centroid(2);% 求的图像1质心的坐标  
y1=stats1.Centroid(1);% 求的图像1质心的坐标  
indimage=rgb2ind(image,map);%将待处理图片转换为索引图像
[height,width]=size(indimage);%计算灰度索引图像的长宽 

%——————————创建背景
backgroud1=zeros(128,128);%创建背景(全0)
backgroud1=~backgroud1;%背景取反,目的是求质心
bckg_zhixin=regionprops(backgroud1,'Centroid');%求背景的质心
backgroud1=~backgroud1;%背景取反,恢复黑色。
backgroud1=mat2gray(backgroud1);%将矩阵转换为灰度图像
backgroud1=gray2ind(backgroud1);%将灰度图像转换为索引图像
bckg_y=bckg_zhixin.Centroid(1);%背景质心X坐标
bckg_x=bckg_zhixin.Centroid(2);%背景质心y坐标

%使原图像只显示一个贝母(索引图片)
for i=1:height   
        for j=1:width 
            if bwImage1(i,j)==0
               indimage(i,j)=0; 
            end
        end
end 
aa1=x1-bckg_x;%原图质心和新背景质心横坐标距离
bb1=y1-bckg_y;%原图质心和新背景质心纵坐标距离
  for i&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值