# @blazediff/gmsd 中文文档

规范地址：https://npmcn.com/package/%40blazediff/gmsd/

版本：2\.0\.0
npm 元数据更新时间：2026-11-05T06:20:19.568Z
中文译文更新时间：2026-11-08T06:27:08.325Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40blazediff/gmsd
原文对照：https://npmcn.com/package/%40blazediff/gmsd/?lang=original
项目主页：https://blazediff.dev/
源码仓库：https://github.com/teimurjan/blazediff

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：14.1 kB，6 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2025-10-17T09:58:01.395Z
- 最新版本发布：2026-11-05T06:20:19.181Z
- 近 30 天下载量：15766（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 3 个）

## 中文简介

用于 CI 视觉测试的快速单行径 GMSD (Gradient Magnitude 相似度偏移) 度量衡

## 安装

```sh
npm install @blazediff/gmsd
```

也可以使用：`pnpm add @blazediff/gmsd`、`yarn add @blazediff/gmsd`、`bun add @blazediff/gmsd`

## README

# @ blazediff/ gmsd (英语)

[![npm bundle size](https://img.shields.io/npm/unpacked-size/%40blazediff%2Fgmsd?style=for-the-badge)](https://www.npmjs.com/package/@blazediff/gmsd) [![NPM Downloads](https://img.shields.io/npm/dy/%40blazediff%2Fgmsd?style=for-the-badge)](https://www.npmjs.com/package/@blazediff/gmsd)

高性能的GMSD(Gradient Magnitude 相似度偏移)能感图像质量度量. 结构感知相似分分 使用普鲁维特梯度 在卢马通道.

## 安装

```bash
npm install @blazediff/gmsd
```

## API 密码

### gmsd( a, b, 选项)

比较两个大小相同的RGBA图像并返回一个GMSD分数.

```typescript
interface Image {
  data: Uint8Array | Uint8ClampedArray; // RGBA, width * height * 4 bytes. Buffer works too.
  width: number;
  height: number;
}

type GmsdResult =
  | { kind: "compared"; score: number } // 0 when identical, higher is more different (typically 0-0.35)
  | { kind: "dimension-mismatch"; a: Size; b: Size };
```

大小不同的图像返回 `kind: "dimension-mismatch"`。不持有的缓冲器 `width * height * 4` 字节,或 `output` 大小不对,丢出.

| 选项 | 类型 | 默认 | 说明 | 提示 |
| --- | --- | --- | --- | --- |
| `downsample` | 0| 1 | 0 个 | 采样系数 | 0 = 全分辨度, 1 = 2x 下采样(较快,略微精度损失) |
| `c` | 编号 | 170国 | 稳定不变 | 防止零除法. 170 从最初 MATLAB 执行 8- 位图像 |
| `output` | 图像 | 无 | 绘制梯度相似度图 | 白色是相同的梯度结构,黑色是不同的,灰色是部分相似的 |

## 使用量

```typescript
import { gmsd } from '@blazediff/gmsd';

const result = gmsd(image1, image2, { downsample: 0, c: 170 });

// Lower score = better quality (0 = perfect match)
if (result.kind === 'compared') console.log(`GMSD score: ${result.score.toFixed(4)}`);

// With the GMS map drawn into an RGBA buffer
const output = { data: new Uint8ClampedArray(width * height * 4), width, height };
gmsd(image1, image2, { output });
```

### 从 1.x 移动

| 1.x 运算 | 现在 |
| --- | --- |
| `gmsd(a.data, b.data, out, width, height, options)` | `gmsd(a, b, { ...options, output: { data: out, width, height } })` |
| 返回时 `number` | 返回时 `{ kind: "compared", score }` |
| 灰度输入 (每像素 1 字节) | 只有 RGBA 输入 |

## 参考资料

根据该文件:

> 薛, W., 张, L., Mou, X., & Bovik, A. C. (2013). "Gradient Magnitude相似度偏差:一个高效的感知图像质量指数". IEEE交易 关于图像处理,22(2),684-695.

-   [最初的 MATLAB 执行](http://www4.comp.polyu.edu.hk/~cslzhang/IQA/GMSD/GMSD.htm)
-   [数学公式验证](https://npmcn.com/package/%40blazediff/gmsd/FORMULA.md)

## 常见问题

### @blazediff/gmsd 是什么？

用于 CI 视觉测试的快速单行径 GMSD \(Gradient Magnitude 相似度偏移\) 度量衡

### 如何安装 @blazediff/gmsd？

在项目目录运行 npm install @blazediff/gmsd，或使用 pnpm add / yarn add / bun add。

### @blazediff/gmsd 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @blazediff/gmsd 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @blazediff/gmsd 可以商用吗？

@blazediff/gmsd 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @blazediff/gmsd 的下载量有多少？

根据 npm 官方下载统计，@blazediff/gmsd 在 2026/10/09 – 2026/11/07 这 30 天内被下载 15,766 次，日均约 526 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @blazediff/gmsd 还在维护吗？

最新版本 2\.0\.0 发布于 2026/11/05（3 天前）；至今共发布 5 个版本，其中过去 12 个月发布了 3 个；首次发布于 2025/10/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

