首页 > 其他分享 >雨后彩虹图像分割

雨后彩虹图像分割

时间:2024-06-17 13:29:35浏览次数:20  
标签:彩虹 subplot 分割 figure title imshow 图像

       不经历风雨,怎么见彩虹!2024年6月14日下午一场及时雨,不仅消除了暑热,也带来了美丽彩虹,就想着尝试把空中的彩虹从自然场景中提取出来,希望对学习图像的有所帮助。

      读入自然场景下雨后彩虹图像,然后对彩虹从背景分割出来。算法思想:通过提取红、绿和蓝各分量图像和RGB转灰度后的灰度图像,通过直方图分析发现其双峰特性不明显。使用improfile绘制图像穿过背景和彩虹的R、G 、B分量的灰度值曲线,再结合imtool图像分析工具箱,发现采用R-B彩色分割因子转化为灰度图像效果较好。然后再对Irb图像进行二值化,区域标记和数学形态学处理,最后进行处理过程和结果显示。

详细代码如下:

clear all;close all;clc;
imtool close all;
I=imread('.\Rainbow_20240614.jpg');%读入雨后彩图像
imshow(I);
[M,N,D]=size(I);%测试图像的行列数和通道数
whos;
imtool(I);
Ir=I(:,:,1);
figure,imshow(Ir);
Ig=I(:,:,2);
figure,imshow(Ig)
Ib=I(:,:,3);figure,imshow(Ib)
Igray=rgb2gray(I);
figure,imhist(Igray),title('rgb2gray(I)后的灰度直方图');
x=[1   1279]
y=[450 450]
improfile(I,x,y);
Irb=Ir-Ib;
figure,imhist(Irb);
imtool(Irb);
bw=im2bw(Irb,10/255);  %通过imtool和improfile进行分析确定阈值
figure,imshow(bw);
bw2=bwareaopen(bw,16000);
figure,imshow(bw2);
[L,num]=bwlabel(bw2);%对二值图像进行标记
num
obj=bwareafilt(bw,[16000 18000]);%对指定面积范围的目标进行提取
se = strel('disk',17);  %选择合适的结构元素形式和尺寸,感兴趣的可以尝试使用线性或菱形结构元素
obj2 = imopen(obj,se);%使用数学形态学开运算
figure,imshow(obj2);
Rainbow=uint8(obj2).*I;
figure('Name','自然场景下彩虹提取','NumberTitle','off');
subplot(2,3,1),imshow(I),title('原始图像');
subplot(2,3,2),imshow(Irb),title('R-B图像');
subplot(2,3,3),imshow(bw),title('二值图像');
subplot(2,3,4),imshow(obj),title('对指定面积范围的目标进行提取');
subplot(2,3,5),imshow(obj2),title('彩虹二值图像模版');
subplot(2,3,6),imshow(Rainbow),title('提取的彩虹图像');

%本程序在MATLAB 2018b环境下通过调试

程序运行结果如图所示:

雨后彩虹原始图像:

标签:彩虹,subplot,分割,figure,title,imshow,图像
From: https://blog.csdn.net/xrgs_shz/article/details/139698429

相关文章

  • 图像分割(二)——低照度下自然场景下图像分割的一种新方法
    一天傍晚,在景观河散步,看到景观河旁边雕塑鸭子,就用手机拍摄下来,但由于是晚上光线不是太好,且雕塑下面的地板有条纹和阴影。想着尝试用传统的数字图像处理方法把鸭子从自然场景中提取出来。读入低照度下图像,然后把鸭子从背景分割出来。算法主要步骤:1.读入彩色图像;2.图像裁剪;3.彩......
  • nii转dicom,需要一个同序列dicom图像模板作为参考
    ``importnibabelimportnumpyasnpimportpydicomimportosfromtqdmimporttqdmdefconvertNsave(arr,file_dir,index=0,slice_thickness=1.0,pixel_spacing=(1.0,1.0)):"""`arr`:parameterwilltakeanumpyarraythatreprese......
  • CVPR2024 分割Segmentation相关论文37篇速览
    Paper1MFP:MakingFullUseofProbabilityMapsforInteractiveImageSegmentation摘要小结:最近的交互式分割算法中,将先前的概率图作为网络输入,以帮助当前分割轮次的预测。然而,尽管使用了先前的掩膜,概率图中包含的有用信息并没有很好地传播到当前预测中。在本文中,为......
  • 仅凭一图,即刻定位,AI图像定位技术
    AI图像定位技术,解锁空间密码!仅凭一图,即刻定位,精准至经纬度坐标,让世界无处不晓。试试看能否猜中这张自拍照的背景所在?可别低估了A的眼力,答案说不定会让你大吃一惊呢。近期,一款名为GeoSpy的AI工具成为了公众瞩目的焦点。这款工具凭借其非凡能力,仅凭照片中的细微元素——如光线......
  • 华为OD机试C卷(100分)-字符串分割(二)(C语言)
    题目描述给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含有的大写字母比......
  • 上位机图像处理和嵌入式模块部署(h750 mcu和usb虚拟串口)
    【 声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing@163.com】    对于mcuusb而言,大部分情况下,它和上位机之间的关系都是device的关系。一般usb,可以成成host和device。如果mcu是host,那么意味着它可以主动访问别的usb设备,比如u盘、相机之类的设备。如......
  • 【图像隐写】基于Jsteg算法实现JPEG图像信息隐藏,可设置DCT系数 嵌入率附Matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【图像准配】用于多模态图像配准的 CCRE(Matlab实现)
     ......
  • 基于RandLA-Net深度学习模型的激光点云语义分割
    一、场景要素语义分割部分的文献阅读笔记        RandLA-Net是一种高效、轻量级的神经网络,其可直接逐点推理大规模点云的语义标签。RandLA-Net基于随机点采样获得了显著的计算和内存效率,并采用新的局部特征聚合模块有效地保留了几何细节,弥补了随机采样可能丢失关键特......
  • 15-字符串处理的常用函数——查找字符串,求字符串长度,分割字符串,查找指定字符,比较字符
    15-字符串处理的常用函数——查找字符串,求字符串长度,分割字符串,查找指定字符,比较字符串,连接字符串文章目录15-字符串处理的常用函数——查找字符串,求字符串长度,分割字符串,查找指定字符,比较字符串,连接字符串1.`strstr`1.1示例代码2.`strlen`2.1示例代码3.`strtok`......