【图像分割】光流生成标签(matlab)

2024-04-18 20:37

本文主要是介绍【图像分割】光流生成标签(matlab),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 框架
  • 2. opticalFlow_label
  • 3. 光流

1. 框架

在这里插入图片描述

2. opticalFlow_label

close all; clear; clc;
% 使用光流进行标签的生成
%% 视频帧的读取
npy_data = readNPY('train.npy');%% 提取标签的坐标
first_label = squeeze(npy_data(2,1,:,:));
h = fspecial("gaussian", [3, 3], 1);
first_label_g = imfilter(first_label, h, 'replicate');   % 'conv'
first_label_c = edge(first_label_g, "canny");
% imshow(uint8(first_label_c*255));
first_label_double = im2double(first_label_c);
first_label_bw = im2bw(first_label_double, 0.5);
% imshow(uint8(first_label_bw * 255));
[h, w] = size(first_label);
xPos = [];
yPos = [];
step = 0;
for i = 1:hfor j = 1:wif first_label_bw(i, j) == 1
%             xPos = [xPos, i];       % 保存为行
%             yPos = [yPos, j];step = step + 1;if mod(step, 1) == 0xPos = [xPos; j];   % 保存为列yPos = [yPos; i];endendend
end%% 逐帧处理
first_frame = squeeze(npy_data(1,1,:,:));
first_frame = uint8(first_frame);
% imshow(first_frame);
[c,frame_num,img_h,img_w] = size(npy_data);
num = 0;
save_npy(1,1,:,:) = first_frame;
save_npy(2,1,:,:) = first_frame;   % 预留一个通道,用于保存标签for i = 2  % 2:frame_numnum = num + 1;currFrame = squeeze(npy_data(1,i,:,:));currFrame = uint8(currFrame);pyramidLayer = 4;kernelSize = 3;sigma = 1.5;iterNumMax = 5;ww = 13;[u, v] = affineLKopticalFlow(first_frame, currFrame, xPos, yPos, pyramidLayer, kernelSize, sigma, iterNumMax, ww);% 显示newFrame = repmat(currFrame, [1, 1, 3]);new_xPos = xPos + u;new_yPos = yPos + v;newFrame1 = zeros(size(currFrame));for kk = 1:length(xPos)%显示newFrame(int16(new_yPos(kk)), int16(new_xPos(kk)), 1) = 255;newFrame(:, :, 2) = currFrame;newFrame(int16(new_yPos(kk)), int16(new_xPos(kk)), 3) = 0;newFrame1(int16(new_yPos(kk)), int16(new_xPos(kk))) = 1;end   save_npy(1,i,:,:) = currFrame;save_npy(2,i,:,:) = first_frame;
%     writeNPY(save_npy, "test.npy");figure(1)imshow(newFrame)title("Pre")% 形态学处理 离散点的连接se = strel('disk',51);   % 加大半径 可以进行填充fc = imclose(newFrame1, se);
%     imwrite(fc, "fc.jpg")% bw = im2bw(fc);% fill_img = imfill(bw, "holes");   % 封闭区域figure(2)imshow(fc)title("fc")%将mask显示在图片上mask_frame = repmat(currFrame, [1, 1, 3]);[mask_h, mask_w, channel] = size(mask_frame);for i = 1:mask_hfor j = 1:mask_wif fc(i, j) == 1mask_frame(i, j, 1) = 255;mask_frame

这篇关于【图像分割】光流生成标签(matlab)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/915787

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

Python如何将大TXT文件分割成4KB小文件

《Python如何将大TXT文件分割成4KB小文件》处理大文本文件是程序员经常遇到的挑战,特别是当我们需要把一个几百MB甚至几个GB的TXT文件分割成小块时,下面我们来聊聊如何用Python自动完成这... 目录为什么需要分割TXT文件基础版:按行分割进阶版:精确控制文件大小完美解决方案:支持UTF-8编码

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S