二维OTSU(二维大津法)matlab实现(复制粘贴即可)

二维OTSU(二维大津法),matlab实现,(复制粘贴即可),二维熵

我发现CSDN搜索故意屏蔽调免费、公开的代码,特别推荐的  都是收费,收币的代码或项目。我分享的都是开源的,大家最好关注,收藏我,否则在CSDN 搜索中,即使你属于关键词准确,也并不能找到我。

欢迎 收藏 ,关注,加点赞。 

就喜欢开源,免费。

好了,废话不说直接上代码。

二维Otsu matlab 代码 

% 二维Otsu
clear all;  % 清除所有变量  在function里不能使用
% close all;  % 关闭所有figure   在function里不能使用clc;[filename,pathname]=uigetfile({'*.jpg;*.bmp;*.tif;*.png;*.gif','All Image Files';'*.*','All Files'}); tic;
t1 = clock;% 读取图像
I = imread([pathname,filename]);
% I = imread('F:\matlab2016\bin\pic\lena.jpg');
figure();
subplot(2,3,1);
imshow(I),title('原图');numel = numel(size(I));
% 图像灰度化
if numel>2I_gray = rgb2gray(I);
elseI_gray = I;
end
subplot(2,3,2);
imshow(I_gray),title('灰度图');% 图像大小
[m,n] = size(I_gray);% NI=filter2(fspecial('average',3),I_gray); % 第一行  第一列  最后一行  最后一列  不满足八邻域  补0计算NI = I_gray;% 3×3模板
for i = 2:m-1for j = 2:n-1pixsum=sum(sum(I_gray(i-1:i+1,j-1:j+1)));pix=round(pixsum/9);NI(i,j)=pix;end
end
subplot(2,3,3);
imshow(NI),title('邻域平均灰度图');Hist=zeros(256,256);
for i = 1:mfor j = 1:npix1=I_gray(i,j);pix2=NI(i,j);Hist(pix1+1,pix2+1)=Hist(pix1+1,pix2+1)+1;           end
end
subplot(2,3,4);
mesh(double(Hist));
title('二维灰度直方图');
xlim([0 256]);% X轴范围
ylim([0 256]);% Y轴范围
xlabel('灰度级');
ylabel('邻域平均灰度级');
zlabel('像素数');% 灰度级
len = length(Hist);
% 灰度概率
p = Hist/(m*n);ux = 0;
uy = 0;
for t = 1:lenfor s = 1:lenux = ux + t * p(s,t);uy = uy + s * p(s,t);end
endg1 = 0;
for t = 1:lenfor s = 1:lenw1 = sum(sum(p(1:t,1:s)));w2 = sum(sum(p(t+1:len,s+1:len)));u1x = 0;u1y = 0;u2x = 0;u2y = 0;for i = 1:tfor j = 1:su1x = u1x + i * p(i,j);u1y = u1y + j * p(i,j);endendfor i = t+1:lenfor j = s+1:lenu2x = u2x + i * p(i,j);u2y = u2y + j * p(i,j);endendg2=w1*((u1x-ux)^2+(u1y-uy)^2)+w2*((u2x-ux)^2+(u2y-uy)^2);if g2>g1T = t-1;S = s-1;g1 = g2;endend
endfor x = 1:mfor y = 1:nif I_gray(x,y)>TI_gray(x,y)=255;elseI_gray(x,y)=0;endend
endsubplot(2,3,5);
imshow(I_gray),title({('二维Ostu阈值分割'),['T=' num2str(T)],['S=' num2str(S)]});
disp(['etime程序总运行时间:',num2str(etime(clock,t1))]);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI开发工程师的学习路线

学习人工智能(AI)是一个广泛且深入的过程,涵盖了多个领域的知识和技能。以下是对AI学习路线的总结,旨在提供一个清晰的学习方向和步骤概览。 一、基础知识 数学基础:AI的核心是算法和数学模型,因此数学基础…

如何查看Linux kernel用哪个版本的gcc编译的?

查看内核是使用哪个版本的 GCC 编译的,可以使用 modinfo 命令来查看内核模块信息,其中包括使用的编译器版本。但请注意,并不是所有的内核模块都包含了这些信息。如果内核模块提供了,则你可以通过以下方式查看: modinf…

利用AI办公工具类API,大幅提高办公效率

AI办公工具类API是一项革命性的技术,利用人工智能的力量为办公场景提供了许多创新的解决方案。借助AI办公工具类API,用户可以实现自动化的文档处理、语音转文字、图像识别、数据分析等多种功能,大大提高了办公效率和工作质量。此外&#xff0…

突发!某大厂机房掉电,MySQL数据库无法启动,紧急恢复过程...

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

正则表达式的匹配

正则表达式的语法总结 正则表达式的语法因不同的编程语言或工具而略有差异,但基本的结构和概念是相似的。下面是一个正则表达式的基本语法概述: 字符类 .:匹配除了换行符之外的任何单个字符。 [abc]:匹配方括号中的任何一个字符。例如,[aeiou] 匹配任何元音字母。 [^ab…

【算法】梦破碎之地---三数之和

相信大家都有做过两数之和, 题目链接: 15. 三数之和 - 力扣(LeetCode) 在文章的开始让我们回顾一下三数之和吧! 题目描述: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], …

Hololens2关闭软件自动校对人眼

原 因 :软件进入后总是提示需要校对人眼,对演示有很大的不方便,需要使用人进行处理。 处理效果:更换使用人员,不进行校对人眼。

mysql数据表名称区分大小写

mysql数据表名称区分大小写 MySQL数据库在Windows平台上的表名和列名默认不区分大小写,而在Linux上默认是区分大小写的。想在任何平台上都实现区分大小写的表名和列名,可以通过设置lower_case_table_names系统变量来完成。 lower_case_table_names系统变量的取值 这个变量…

【量算分析工具-获取高程】GeoServer改造Springboot番外系列八

【量算分析工具-概述】GeoServer改造Springboot番外系列三-CSDN博客 【量算分析工具-水平距离】GeoServer改造Springboot番外系列四-CSDN博客 【量算分析工具-水平面积】GeoServer改造Springboot番外系列五-CSDN博客 【量算分析工具-方位角】GeoServer改造Springboot番外系列…

Ubuntu18 配置FFmpeg开发环境 (Vscode+CMake)

关于Vscode插件安装不再赘述,本文主要讲解如何配置FFmpeg的开发环境以及CMake文件写法,如果不知道该安装什么插件请看本文: Ubuntu配置Vscode 文章目录 1.安装FFmpeg开发包2.配置Vscode项目3.使用C语言验证FFmpeg版本 1.安装FFmpeg开发包 更新…

宝塔部署前后端分离项目手册

文章目录 安装宝塔安装环境开始部署1. 前端Vue项目1.先本地启动前端项目(记住端口号)2.打包前端项目3.上传前端项目4.创建PHP站点5.安全里开放端口号6.测试前端 2. 后端boot项目1. 先在本地跑起来2.修改数据库的配置信息3. 项目打包4. nohup启动项目4.1 …

聊天软件鼻祖 ICQ 将于 6 月 26 日关闭;40 光年外发现一颗潜在宜居的类地行星丨 RTE 开发者日报 Vol.212

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

Android签名()和key hashes获取方法

1.Android获取keystore.debug文件签名。 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android2.Android 获取.jks文件签名。 keytool -list -v -keystore /Users/fuzhenwen/AndroidStudioProjects/rab-ev-cha…

Vue3项目练习详细步骤(第一部分:项目构建,登录注册页面)

项目环境准备 工程创建 安装依赖 项目调整 注册功能 页面结构 接口文档 数据绑定和校验 数据接口调用 解决跨域问题 登录功能 接口文档 数据绑定和校验 数据接口调用 项目演示 项目的后端接口参考:https://blog.csdn.net/dafsq/category_12646722.html…

flutter使用dbus插件时,在终端无法使用“dart-dbus”命令

不用flutter的人,可能都不会找到这儿,遇到这个问题,所以这里默认flutter已经装过了,且对flutter如何使用插件也有所了解了。 由于我在项目中用到了dbus插件,用法如图所示,我需要使用这条命令来生成一个sou…

C语言---基础内容(万字)

C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯里奇在贝尔电话实验室设计开发了 C 语言。 C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程…

基于小波熵阈值的心电信号R波检测算法(MATLAB)

心脏兴奋电活动过程可由心电信号(ECG)来反映,心电信号也是医学上对心血管疾病诊断的重要科学依据。心电信号具有一定的随机性且一般情况下十分微弱,在信号采集、放大及变换过程中,心电信号容易受到人体呼吸及检测仪器等因素影响,从…

开发依赖与运行依赖

1. 概念 开发依赖:devDependencies 运行依赖:dependencies 2. 理解 (1)devDependencies 在线上状态不需要使用的依赖,就是开发依赖。为什么 npm 要把它单独分拆出来呢?最终目的是为了减少 node_modul…

golang、php,laravel框架对接stripe海外支付接口的总结和流程(通俗易懂)

目录 stripe是什么? 环境 配置后台 首先让管理员把你设置成为开发者 然后进入后台 然后你要创建产品,开单周期要写每天,我这里理解成每天都会有人买的 获取产品id 获取密钥,后续代码需要用到 支付代码 唤起支付页面 测…

摸鱼大数据——Hive表操作——基本操作

Hive表操作 Hive乱码解决 1、乱码现象 create database test1 comment "乱码测试"; use test1; CREATE TABLE orders ( orderId bigint COMMENT 订单id, orderNo string COMMENT 订单编号, shopId bigint COMMENT 门店id ); 2、处理步骤 注意&#…