algorithm - 如何找到图像处理算法的计算复杂度
问题描述
我试图找到关于像素数的算法的计算复杂度,我需要遵循什么程序。该算法基于图像配准。
解决方案
作为粗略的衡量标准,您可以查看循环次数,或算法查看/编辑每个像素的次数。
例如,此算法将图像转换为棕褐色
BufferedImage img = <input of the algorithm>
for(int i=0;i<img.getWidth();i++){
for(int j=0;j<img.getHeight();j++){
Color c = new Color(img.getRGB(i,j));
double r = c.getRed();
double g = c.getGreen();
double b = c.getBlue();
double r2 = 0.39 * r + 0.76 * g + 0.19 * b;
double g2 = 0.34 * r + 0.69 * g + 0.17 * b;
double b2 = 0.27 * r + 0.53 * g + 0.13 * b;
}
}
我可以看到有两个循环,一个迭代图像的宽度,一个迭代图像的高度。
该算法对每个像素进行一次访问。它的复杂度是 O(n),其中 n 是输入图像中的像素数。
推荐阅读
- performance - 当每行的列数可变时,如何从长格式转换为宽格式?(MATLAB)
- c++ - 如何为 OPenCV OutputArray 返回数组而不是一维矩阵
- c++ - 类中的 C++ 动态数组分配
- python - 如何使用 functools.wraps 并设置一个参数
- 2sxc - 我需要在没有防伪令牌的情况下调用 2sxc web api
- c++ - 我将如何实现这个 maximumGrade 功能?
- node.js - 使用 Node.js 将照片从 Google Drive 上传到 AWS S3
- javascript - 净::ERR_FILE_NOT_FOUND。reactjs和mongodb错误
- python-3.x - 如何让 Python3 请求模块为 https 请求工作
- webpack - Socketio 不适用于 webpack 但适用于 CDN