数字图像处理:实验二

任务一:

       将不同像素(32、64和256)的原图像放大为像素大 小为1024*1024的图像(图像自选)

           

       要求:1)输出一幅图,该图包含六幅子图,第一排是原图,第 二排是对应放大的图; 2)每幅图的顶头都加上小标题

(解释过程原理:实际上这里用到的图像操作就是调用函数来增加它的像素点数,实际生活中的压缩和解压图像中也会有这种操作,用法就是调用imresize函数即可。之余之后建立一个新的窗口和简单的内容分布,实际上的操作可以会看第一章的基本操作。)

A = imread('1.jpg');  %将图像A的大小调整为32x32像素,结果存储在变量img32中  
img32 = imresize(A,[32,32]);    
%将图像A的大小调整为64x64像素,结果存储在变量img64中  
img64 = imresize(A,[64,64]);    
%将图像A的大小调整为256x256像素,结果存储在变量img256中  
img256 = imresize(A,[256,256]);    %将32x32的图像img32放大到1024x1024像素,结果存储在变量img32_resized中  
img32_resized = imresize(img32, [1024, 1024]);    
%将64x64的图像img64放大到1024x1024像素,结果存储在变量img64_resized中  
img64_resized = imresize(img64, [1024, 1024]);    
%将256x256的图像img256放大到1024x1024像素,结果存储在变量img256_resized中  
img256_resized = imresize(img256, [1024, 1024]);    %创建一个新的图形窗口用于显示图像  
figure;    %在图形窗口的2x3网格中的第一个位置显示32x32的原图  
subplot(2,3,1);    
imshow(img32);  % 显示图像  
title('32x32 原图');  % 设置图像标题  %在图形窗口的2x3网格中的第二个位置显示64x64的原图  
subplot(2,3,2);    
imshow(img64);  % 显示图像  
title('64x64 原图');  % 设置图像标题  %在图形窗口的2x3网格中的第三个位置显示256x256的原图  
subplot(2,3,3);    
imshow(img256);  % 显示图像  
title('256x256 原图');  % 设置图像标题  %在图形窗口的2x3网格中的第四个位置显示32x32放大到1024x1024的图像  
subplot(2,3,4);    
imshow(img32_resized);  % 显示图像  
title('32x32 放大到1024x1024');  % 设置图像标题  % 在图形窗口的2x3网格中的第五个位置显示64x64放大到1024x1024的图像  
subplot(2,3,5);    
imshow(img64_resized);  % 显示图像  
title('64x64 放大到1024x1024');  % 设置图像标题  %在图形窗口的2x3网格中的第六个位置显示256x256放大到1024x1024的图像  
subplot(2,3,6);    
imshow(img256_resized);  % 显示图像  
title('256x256 放大到1024x1024');  % 设置图像标题

结果如下:

任务二:去噪声

要求:

1)对所选图添加噪声(可以选择高斯噪声或椒盐噪声),次数为10次、 30 次和50次;

2)对添加噪声后的图像去噪;

3)输出一幅图,该图包含七幅子图,共三排,第一排是 原图,第二排是添加噪声后的图;第三排是对应去噪声后的图像;

4)每幅图的顶头都加上小标踢;

(操作重点:第一、了解所添加的噪声类型和matlab函数的使用方法,第二、了解噪声的特性,第三、学会查找和调用函数) 

img1 = imread('1.png');  
% 如果是彩色图像,则将其转换为灰度图像  
if size(img1, 3) == 3  img = rgb2gray(img1);  % 使用rgb2gray函数将彩色图像转换为灰度图像  
end  % 向灰度图像img中添加椒盐噪声  
% 噪声密度为0.01,相当于添加“10次”噪声 
noisy_img10 = imnoise(img, 'salt & pepper', 0.01);  
% 噪声密度为0.03,相当于添加“30次”噪声
noisy_img30 = imnoise(img, 'salt & pepper', 0.03);  
% 噪声密度为0.05,相当于添加“50次”噪声  
noisy_img50 = imnoise(img, 'salt & pepper', 0.05);  % 使用中值滤波对添加噪声后的图像进行去噪处理  
denoised_img10 = medfilt2(noisy_img10);  % 对噪声密度为0.01的图像进行去噪  
denoised_img30 = medfilt2(noisy_img30);  % 对噪声密度为0.03的图像进行去噪  
denoised_img50 = medfilt2(noisy_img50);  % 对噪声密度为0.05的图像进行去噪  % 创建一个新的图形窗口用于显示图像  
figure;  % 在图形窗口的3x3网格中的第一个位置显示原图  
subplot(3,3,1);  
imshow(img1);  % 显示原图(如果是彩色图则显示彩色图,如果是灰度图则显示灰度图)  
title('原图');  % 设置图像标题  % 在图形窗口的3x3网格中的第四、五、六个位置分别显示添加不同密度椒盐噪声后的图像  
subplot(3,3,4);  
imshow(noisy_img10);  % 显示噪声密度为0.01的图像  
title('椒盐噪声密度0.01');  % 设置图像标题
subplot(3,3,5);  
imshow(noisy_img30);  % 显示噪声密度为0.03的图像  
title('椒盐噪声密度0.03');  % 设置图像标题
subplot(3,3,6);  
imshow(noisy_img50);  % 显示噪声密度为0.05的图像  
title('椒盐噪声密度0.05');  % 设置图像标题
% 在图形窗口的3x3网格中的第七、八、九个位置分别显示去噪后的图像  
% 注意:原代码中的标题有误,将“高斯噪声”更正为“椒盐噪声”  
subplot(3,3,7);  
imshow(denoised_img10);  % 显示去噪后的噪声密度为0.01的图像  
title('去噪后的椒盐噪声密度0.01');  % 设置图像标题
subplot(3,3,8);  
imshow(denoised_img30);  % 显示去噪后的噪声密度为0.03的图像  
title('去噪后的椒盐噪声密度0.03');  % 设置图像标题  
subplot(3,3,9);  
imshow(denoised_img50);  % 显示去噪后的噪声密度为0.05的图像  
title('去噪后的椒盐噪声密度0.05');  % 设置图像标题

结果:

任务三:图像的补集以及对两幅图求并集

要求:

1)求原图的补集;

2)以该图像平均灰度值的3倍获得均值图,并将它与原图做并集操作;

3)输出一幅图,该图包含一排的三幅子图,从左到右为: 原图、补集图和并集图。

4)每幅图的顶头都加上小标题。

(操作重点:第一、了解数字图像处理时的并集、补集的含义,主要是记住其实现时存在的图像然后理解就方便很多,第二、注意理解要求(2)中的获得均值图后在与原图求取并集操作,了解其作用,咸鱼哥建议可以先尝试一下不做并集得到的图像,这样会更方便理解这个概念。)

A = imread('1.jpg');  % 将图像A转换为双精度类型(double),并将像素值归一化到 [0, 1] 区间  
% 这是因为imread读取的图像通常是uint8类型,像素值在 [0, 255] 区间  
A = im2double(A);  
img_1 = A;  
img_2 = A;  
% 计算原图像A灰度值的三倍,并将结果存储在变量N中  
N = 3 * A;  
% 使用min函数确保N中的值不超过1,对于大于1的值,将其设置为1  
N = min(N, 1);  
% 调用自定义函数set_comple计算图像A的补集,并将结果存储在变量h中  
% 补集是指将图像中的每个像素值用1减去该像素值得到的图像  
h = set_comple(A);  
% 调用自定义函数set_union计算图像A和它的三倍图像N的并集,并将结果存储在变量j中  
% 对于两幅图像来说,并集是指逐元素取两幅图像中较大的那个值  
j = set_union(A, N);  % 创建一个新的图形窗口用于显示图像  
figure;  
% 在图形窗口的1x3网格中的第一个位置显示原图A  
subplot(1, 3, 1), imshow(A), title('原图');  
% 在图形窗口的1x3网格中的第二个位置显示补集图像h  
subplot(1, 3, 2), imshow(h), title('补集图');  
% 在图形窗口的1x3网格中的第三个位置显示并集图像j  
subplot(1, 3, 3), imshow(j), title('并集图');  % 定义计算补集的函数set_comple  
% 输入参数f为待计算补集的图像  
% 输出参数img_1为计算得到的补集图像  
function img_1 = set_comple(f)  img_1 = 1 - f;  % 计算补集:将每个像素值用1减去  
end  % 定义计算并集的函数set_union  
% 输入参数f1和f2为待计算并集的两幅图像  
% 输出参数img_2为计算得到的并集图像  
function img_2 = set_union(f1, f2)  img_2 = max(f1, f2);  % 计算并集:逐元素取两幅图像中较大的值  
End

结果:

任务四:多种噪声添加及多种滤波

要求:

1)对原图添加多种不同类型、不同程度的噪声,包括高斯噪声、椒盐噪声、泊松噪声等(至少3种噪声),噪声参数自己拟定, 但须得到有对比性噪声效果的图像(泊松噪声的参数可以只添加1 次);

2)然后使用不同的滤波方法进行降噪,如中值滤波、自适 应中值滤波、小波降噪等(至少3种滤波方法);

3)输出一幅图,该图至少包含原图(1张)、噪声图(至少5张)和滤波图(至少3张),一共至少9张子图;

4)每幅图的顶头都加上小标题。

(操作重点:这里针对不同类型、不同程度的噪声要重点理解,可以直接在matlab的函数库中搜索函数,这样会显示噪声类型和种类,但是要求英语水平足够扎实才推荐去看。)

d = imread('3.jfif');    
% 将图像d转换为双精度类型(double),以便进行后续处理  
% 因为imread读取的图像通常是uint8类型,像素值在 [0, 255] 区间  
% 转换为double后,像素值会被归一化到 [0, 1] 区间  
d_double = im2double(d);    
% 添加噪声并滤波处理部分    
% 向图像d_double添加高斯噪声,方差为(0.005*5)^2,相当于添加5次高斯噪声的累积效果(但实际上是直接设置了一个较大的方差)  
I1 = imnoise(d_double, 'gaussian', 0, 0.005*5^2);  
% 向I1添加泊松噪声  
I1 = imnoise(I1, 'poisson');  
% 向I1添加斑点噪声,噪声密度为0.2  
I111 = imnoise(I1, 'speckle', 0.2);   
% 向图像d_double添加高斯噪声,方差为(0.001*2)^2,相当于添加2次高斯噪声的累积效果(但实际上是直接设置了一个较小的方差)  
I2 = imnoise(d_double, 'gaussian', 0, 0.001*2^2);  
% 向I2添加泊松噪声  
I2 = imnoise(I2, 'poisson');  
% 向I2添加斑点噪声,噪声密度为0.1  
I222 = imnoise(I2, 'speckle', 0.1);   
% 向图像d_double添加一次较高方差的高斯噪声,方差为0.1^2  
I3 = imnoise(d_double, 'gaussian', 0, 0.1^2);  
% 向I3添加泊松噪声  
I3 = imnoise(I3, 'poisson');  
% 向I3添加斑点噪声,噪声密度非常低,为0.001  
I333 = imnoise(I3, 'speckle', 0.001);    
% 向图像d_double添加椒盐噪声,噪声密度为0.03  
I4 = imnoise(d_double, 'salt & pepper', 0.03);  
% 向I4添加高斯噪声,方差为0.1^2  
I44 = imnoise(I4, 'gaussian', 0, 0.1^2);  
% 向I44添加泊松噪声  
I444 = imnoise(I44, 'poisson');  
% 这行代码是多余的,因为I444已经是double类型,但不会影响后续操作  
I444_d = I444;   
% 向图像d_double添加椒盐噪声,噪声密度为0.02(实际上这是椒盐噪声,但比例较低时椒噪声可能不明显)  
I5 = imnoise(d_double, 'salt & pepper', 0.02);  
% 这行代码没有做任何处理,可能是为了保持格式一致而保留的  
I5 = I5;  
% 向I5添加高斯噪声,方差为0.01^2  
I55 = imnoise(I5, 'gaussian', 0, 0.01^2);  
% 向I55添加泊松噪声  
I555 = imnoise(I55, 'poisson');  
% 滤波处理部分  
% 创建一个5x5大小的高斯滤波器,标准差为1.4  
h1 = fspecial('gaussian', [5 5], 1.4);  
% 使用高斯滤波器h1对I444_d进行滤波处理  
f_I444 = imfilter(I444_d, h1);   
% 创建一个3x3大小的均值滤波器  
h2 = fspecial('average', [3 3]);  
% 使用均值滤波器h2对I333进行滤波处理  
f_I333 = imfilter(I333, h2);  
% 使用均值滤波器h2对I555进行滤波处理  
f_I555 = imfilter(I555, h2);   
% 显示图像部分   
% 创建一个新的图形窗口  
figure;  
% 在3x3的网格中的第一个位置显示原图像d  
subplot(3,3,1), imshow(d), title('原图像');  
% 在3x3的网格中的第二个位置显示噪声图1(经过高斯、泊松、斑点噪声处理后的图像I111)  
subplot(3,3,2), imshow(I111), title('噪声图1(高斯+泊松+斑点)');  
% 在3x3的网格中的第三个位置显示噪声图2(经过高斯、泊松、斑点噪声处理后的图像I222)  
subplot(3,3,3), imshow(I222), title('噪声图2(高斯+泊松+斑点)');  
% 在3x3的网格中的第四个位置显示噪声图3(经过高斯、泊松、斑点噪声处理后的图像I333)  
subplot(3,3,4), imshow(I333), title('噪声图3(高斯+泊松+斑点)');  
% 在3x3的网格中的第五个位置显示噪声图4(经过椒盐、高斯、泊松噪声处理后的图像I444)  
subplot(3,3,5), imshow(I444), title('噪声图4(椒盐+高斯+泊松)');  
% 在3x3的网格中的第六个位置显示噪声图5(经过椒盐、高斯、泊松噪声处理后的图像I555)  
subplot(3,3,6), imshow(I555), title('噪声图5(椒盐+高斯+泊松)');  
% 在3x3的网格中的第七个位置显示对噪声图4进行高斯滤波后的图像f_I444  
subplot(3,3,7), imshow(f_I444), title('对噪声图4高斯滤波');  
% 在3x3的网格中的第八个位置显示对噪声图3进行平均滤波后的图像f_I333  
subplot(3,3,8), imshow(f_I333), title('对噪声图3平均滤波');  
% 在3x3的网格中的第九个位置显示对噪声图5进行平均滤波后的图像f_I555  
subplot(3,3,9), imshow(f_I555), title('对噪声图5平均滤波');

结果:

                              

任务五:旋转和放大(原图自选)

要求:

1)将原图像旋转不同角度(至少2个角度),并对旋转后的图放大处理(放大到1024*1024);

2)输出一幅图,该图至少包含原图(1张)、旋转图(至少2张)和滤波图(至少2张),一共至少5张子图;

3)每幅图的顶头都加上小标题。

(操作重点:这里的操作基本上没有困难,所以咸鱼哥不重点赘述,记住imrotate和 imresize两个函数的作用就可以了)

img = imread('1.png');  % 使用imrotate函数将图像img旋转45度,结果存储在rotated_img_45中  
rotated_img_45 = imrotate(img, 45);  
% 使用imrotate函数将图像img旋转90度,结果存储在rotated_img_90中  
rotated_img_90 = imrotate(img, 90);  % 使用imresize函数将旋转45度后的图像rotated_img_45放大到1024x1024像素,结果存储在rotated_img_45_resized中  
rotated_img_45_resized = imresize(rotated_img_45, [1024, 1024]);  
% 使用imresize函数将旋转90度后的图像rotated_img_90放大到1024x1024像素,结果存储在rotated_img_90_resized中  
rotated_img_90_resized = imresize(rotated_img_90, [1024, 1024]);  % 创建一个新的图形窗口,用于显示图像  
figure;  % 使用subplot函数在2x3的网格中的第一个位置创建一个子图,并显示原图img  
subplot(2,3,1);  
imshow(img);  
title('原图'); % 设置子图的标题为“原图”  % 使用subplot函数在2x3的网格中的第二个位置创建一个子图,并显示旋转45度后的图像rotated_img_45  
subplot(2,3,2);  
imshow(rotated_img_45);  
title('旋转45度'); % 设置子图的标题为“旋转45度”  % 使用subplot函数在2x3的网格中的第三个位置创建一个子图,并显示旋转90度后的图像rotated_img_90  
subplot(2,3,3);  
imshow(rotated_img_90);  
title('旋转90度'); % 设置子图的标题为“旋转90度”  % 使用subplot函数在2x3的网格中的第四个位置创建一个子图,并显示旋转45度后放大的图像rotated_img_45_resized  
subplot(2,3,4);  
imshow(rotated_img_45_resized);  
title('旋转45度后放大'); % 设置子图的标题为“旋转45度后放大”  % 使用subplot函数在2x3的网格中的第五个位置创建一个子图,并显示旋转90度后放大的图像rotated_img_90_resized  
subplot(2,3,5);  
imshow(rotated_img_90_resized);  
title('旋转90度后放大'); % 设置子图的标题为“旋转90度后放大”

结果:

       第二章针对于数字图像处理的内容的练习和实际的操作,咸鱼哥个人觉得本章内容较为简单,也比较适合初学者和爱好者来学习,本章代码基本上我把逻辑和操作都写上了注释,方便大家理解和使用,为了促进数字图像处理技术的学习,我们一起加油!uu们!

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

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

相关文章

综述:大语言模型在机器人导航中的最新进展!

简介 机器人导航是指机器人能够在环境中自主移动和定位的能力。本文系统地回顾了基于大语言模型(LLMs)的机器人导航研究,将其分为感知、规划、控制、交互和协调等方面。具体来说,机器人导航通常被视为一个几何映射和规划问题&…

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤 目录 前言 一、同步FIFO的使用 1、配置 2、仿真 二、异步FIFO的使用 1、配置 2、仿真 前言 在系统设计中,利用FIFO(first in first out)进行数据处理是再普遍不过的应用了&#xff0c…

嵌入式知识点总结 C/C++ 专题提升(一)-关键字

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。 目录 1.C语言宏中"#“和"##"的用法 1.1.(#)字符串化操作符 1.2.(##)符号连接操作符 2.关键字volatile有什么含意?并举出三个不同的例子? 2.1.并行设备的硬件寄存…

【前端动效】HTML + CSS 实现打字机效果

目录 1. 效果展示 2. 思路分析 2.1 难点 2.2 实现思路 3. 代码实现 3.1 html部分 3.2 css部分 3.3 完整代码 4. 总结 1. 效果展示 如图所示,这次带来的是一个有趣的“擦除”效果,也可以叫做打字机效果,其中一段文本从左到右逐渐从…

AI守护煤矿安全生产:基于视频智能的煤矿管理系统架构全解析

前言 本文我将介绍我和我的团队自主研发设计的一款AI产品的成果展示——“基于视频AI识别技术的煤矿安全生产管理系统”。 这款产品是目前我在创业阶段和几位矿业大学的博士共同从架构设计、开发到交付的全过程中首次在博客频道发布, 我之前一直想写但没有机会来整理这套系统的…

51c嵌入式~单片机~合集6

我自己的原文哦~ https://blog.51cto.com/whaosoft/13127816 一、STM32单片机的知识点总结 本文将以STM32F10x为例,对标准库开发进行概览。主要分为三块内容: STM32系统结构寄存器通过点灯案例,详解如何基于标准库构建STM32工程 STM3…

【Cadence tip】噪声仿真方法

1.噪声仿真设置 以五管OTA的噪声仿真为例 2.仿真结果 2.1等效输入噪声 2.2查看噪声贡献

vue3+elementPlus之后台管理系统(从0到1)(day2)

登录页面 静态页面搭建 <template><div class"login-container"><div class"form-wrap"><h2 class"header">后台管理系统</h2><el-input v-model"adminName" placeholder"请输入管理员账号&qu…

svn tag

一般发布版本前&#xff0c;需要在svn上打个tag。步骤如下&#xff1a; 1、空白处右击&#xff0c;选择TortoiseSVN->Branch/tag; 2、填写To path&#xff0c;即tag的路基以及tag命名&#xff08;一般用版本号来命名&#xff09;&#xff1b;填写tag信息&#xff1b;勾选cr…

通信协议之数据帧常用校验方法(奇偶校验、CRC校验)

前言 学习永无止境&#xff01;本篇是通信协议之数据帧校验方法&#xff0c;包括奇偶校验、CRC等校验原理及实现。 注&#xff1a;本文章为学习笔记&#xff0c;部分图片与文字来源于网络/应用手册&#xff0c;如侵权请联系&#xff01;谢谢&#xff01; 一、奇偶校验 1.1 奇偶…

[EAI-018] π0: A Vision-Language-Action Flow Model for General Robot Control

Paper Card 论文标题&#xff1a;π0: A Vision-Language-Action Flow Model for General Robot Control 论文作者&#xff1a;Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn, Niccolo Fusai, Lachy Groom, Karol Hausman, Brian Ichter, …

医院挂号就诊系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装医院挂号就诊系统软件来发挥其高效地信息处理的作用&#…

解锁辅助驾驶新境界:基于昇腾 AI 异构计算架构 CANN 的应用探秘

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《AI大模型》 期待您的关注 目录 一、引言 二、CANN 是什么 1. 异构计算与人工智能的关系 2. CANN 的定义和作用 3. CANN 的技…

【前端】CSS学习笔记

目录 CSS的简介CSS的概念语法 CSS的引入方式内联样式&#xff08;行内样式&#xff09;内部样式外部样式&#xff08;推荐&#xff09; 选择器全局选择器元素选择器类选择器ID选择器合并选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器伪类选择器:link:visited:hover:ac…

深度学习 DAY1:RNN 神经网络及其变体网络(LSTM、GRU)

实验介绍 RNN 网络是一种基础的多层反馈神经网络&#xff0c;该神经网络的节点定向连接成环&#xff0c;其内部状态可以展示动态时序行为。相比于前馈神经网络&#xff0c;该网络内部具有很强的记忆性&#xff0c;它可以利用它内部的记忆来处理任意时序的输入序列&#xff0c;…

[STM32 HAL库]串口空闲中断+DMA接收不定长数据

一、空闲中断 STM32的串口具有空闲中断&#xff0c;什么叫做空闲呢&#xff1f;如何触发空闲中断呢&#xff1f; 空闲&#xff1a;串口发送的两个字符之间间隔非常短&#xff0c;所以在两个字符之间不叫空闲。空闲的定义是总线上在一个字节的时间内没有再接收到数据。触发条件…

计算机网络 (49)网络安全问题概述

前言 计算机网络安全问题是一个复杂且多维的领域&#xff0c;它涉及到网络系统的硬件、软件以及数据的安全保护&#xff0c;确保这些元素不因偶然的或恶意的原因而遭到破坏、更改或泄露。 一、计算机网络安全的定义 计算机网络安全是指利用网络管理控制和技术措施&#xff0c;保…

机器学习中的方差与偏差

文章目录 方差与偏差1.1 数据1.1.1 数据的分布1.1.2 拟合 1.2 方差与偏差1.2.1 泛化误差的拆分1.2.2 理解方差偏差 1.3 方差-偏差trade-off1.3.1 方差-偏差trade-off1.3.2 方差与偏差诊断 1.4 降低策略1.4.1 噪声1.4.2 高偏差1.4.3 高方差 方差与偏差 1.1 数据 1.1.1 数据的分…

力扣 有效的括号

括号匹配问题&#xff0c;找到符合的进行抵消。 题目 从题可以看出是嵌套的括号先匹配先做抵消&#xff0c;类似就近原则&#xff0c;这也是栈的典型例题。可以通过枚举多种不同的情况慢慢用if与else做返回。 时间复杂度&#xff1a;O(n)&#xff0c;其中 n 是字符串的长度。…

js: 区分后端返回数字是否为null、‘-’ 或正常number类型数字。

问&#xff1a; 这是我的代码<CountTo v-if!isNaN(Number(item.num))> <span v-else>{{item.num}}</span> 我希望不是null的时候走countTo&#xff0c;是null的时候直接<span>{{item.num}}</span>显示 回答&#xff1a; 最终结果&#xff1a; …