牛客网——图像的相似度

简介: 牛客网——图像的相似度

前言


今天我们一起学习一下怎么样计算图像的相似度。

图像的相似度


题目来源:

图像相似度_牛客题霸_牛客网

描述


给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。

输入描述:


第一行包含两个整数m和n,表示图像的行数和列数,用单个空格隔开。1≤m≤100, 1≤n≤100。之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。

输出描述:


一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。

解题过程


1、分析问题

要判断两个数组中有多少个元素相同,才能算出百分比。

在使用除法的时候,一定要注意到它是整数输出。

2、代码如下

#include<stdio.h>
int main(){
    int m=0,n=0,a=0;
    int arr1[100][100]={0};
    int arr2[100][100]={0};        //初始化数组
    scanf("%d %d",&m,&n);
    for(int i=0;i<m;i++){                //输入数组1
        for(int j=0;j<n;j++){
            scanf("%d ",&arr1[i][j]);
        }
    }
    for(int i=0;i<m;i++){                //输入数组2
        for(int j=0;j<n;j++){
            scanf("%d ",&arr2[i][j]);
        }
    }
    for(int i=0;i<m;i++){                //对比两个数组是否相等
        for(int j=0;j<n;j++){
           if(arr1[i][j]==arr2[i][j]){
               a++;                        //记录有多少个相等的元素
           }
        }
    }
    printf("%.2f\n",100.0 * a / (m * n));        //记住除法是整形输出呦,不要忘记.0哈
    return 0;
}

总结


本文只是简单地介绍了怎么计算图像的相似度,关键其实在于怎么判断出相同元素的个数,希望对大家有帮助,如有错误请指出,谢谢啦~

码字不易,请多多支持~

相关文章
|
5月前
|
存储 弹性计算 安全
阿里云服务器ECS实例选购参考:vCPU到云盘IOPS等指标详解
阿里云服务器ECS实例可以分为多种实例规格族,而根据CPU、内存等配置的不同,一种实例规格族又进一步细分为多种实例规格。这些实例规格包含了众多关键的性能指标,如 vCPU、处理器、内存、vTPM、本地存储、网络带宽、网络收发包 PPS、连接数、弹性网卡、云盘带宽、云盘 IOPS 等。深入理解这些性能指标,对于用户在阿里云服务器购买过程中选择最适合自己业务需求的实例规格至关重要。
|
10月前
|
运维 监控 负载均衡
slb后端服务器故障
slb后端服务器故障
187 13
|
10月前
|
存储 人工智能 自然语言处理
通义千问 Qwen 系列的 Agent 方向探索
通义千问Qwen系列在AI领域展现了强大的Agent方向探索能力,包括灵活的Tool调用、单/多Agent场景实践等,通过丰富的代码示例展示了其在文本生成、信息检索、任务自动化及专业领域应用等方面的优势,为复杂应用场景提供了多元且实用的解决方案。
|
11月前
「Mac畅玩鸿蒙与硬件25」UI互动应用篇2 - 计时器应用实现
本篇将带领你实现一个实用的计时器应用,用户可以启动、暂停或重置计时器。该项目将涉及时间控制、状态管理以及按钮交互,是掌握鸿蒙应用开发的重要步骤。
229 7
「Mac畅玩鸿蒙与硬件25」UI互动应用篇2 - 计时器应用实现
|
12月前
|
数据可视化 数据挖掘 Python
Pandas数据探索性可视化的最佳实践
【10月更文挑战第13天】数据可视化是数据分析中不可或缺的一环,它帮助我们更好地理解数据、发现趋势和模式,并有效地传达我们的发现。在Python领域,Pandas和Matplotlib是两个非常强大的库,它们提供了丰富的功能来进行数据分析和可视化。本文将介绍如何结合使用Pandas和Matplotlib进行数据探索性可视化的最佳实践。
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
198 4
|
存储 网络协议 Unix
图解 Docker 架构,还有谁不会?(1)
图解 Docker 架构,还有谁不会?(1)
383 0
图解 Docker 架构,还有谁不会?(1)
|
算法 数据处理
Volcano - An Extensible and Parallel Query Evaluation System 论文解读
前面写了一些关于优化器的文章,现在开个小差,写一些执行器的paper介绍,从这篇开始。 这篇是Graefe的Volcano Project的执行器框架,其概念已被广泛接受和使用,也就是我们最为熟悉的Volcano iterator的执行框架,关于volcano/cascades的优化器介绍
843 0
|
Java API 数据库
Java 蓝牙无线API 简介
原文地址: http://www.oracle.com/technetwork/articles/javame/index-156193.html   JSP 82 实际上指明了两个独立可选的Java包:核心蓝牙接口(core Bluetooth API)和对象交换接口( Object Exchange (OBEX) API)。
1753 0
|
JavaScript 前端开发
【Vue3从零开始-实战】S4:组件拆分和使用vue指令精简页面代码
【Vue3从零开始-实战】S4:组件拆分和使用vue指令精简页面代码
700 0
【Vue3从零开始-实战】S4:组件拆分和使用vue指令精简页面代码