0%

MiniTools.ImageBrowser

图片浏览器,看看尺寸,取取颜色,随便用用

如何使用

head中增加相关引用

1
2
<link rel="stylesheet" href="./niib.css">
<script type="text/javascript" src="./niib.js"></script>

或者

1
2
<link rel="stylesheet" href="./niib.min.css">
<script type="text/javascript" src="./niib.min.js"></script>

然后选择一个div作为容器,通过下面的js代码生成ImageBrowser(下面例子中ic为容器divid

1
var ib = new MTImageBrowser('ic');
阅读全文 »

一年一度的愚人节,只要是机构(无论商业盈利与否),一般都不会放过,如同今年的stackoverflowTop Secret……

stackoverflow愚人节活动

一开始我是懵逼的,印象中昨天还是正常显示的页面,怎么突然就变成了高密了……而且打开其他的问题,也是这样的情况……

最后是通过去掉了这个奇怪的样式搞掂了(其他人我不知道他们是如何解决的……):

stackoverflow愚人节活动解密

问题是,今天已经是4月2日了,不是1日啊?!想了一下,应该是没有考虑时区——我这边虽然是4月2日,但人家那边的服务器所在时区还在过“愚人节”呢 -_-|||

感觉他们犯了一个比较低级的错误……

作为一家通过互联网提供服务的机构,一般情况下,任何运营活动,因为存在时间限制,必须考虑时区的限制;除非你是由于某种特别的原因,需要故意“犯错”。

dfelf项目中,猜测是poppler的底层原因,导致PDF转图片时,会存在不同OS下,输出的图片不能通过checksum进行大小比较确保一致性。

所以只能通过其他方法来看看两张图片的相似度,如果相似度高(即差异度在容忍的范围内),则认为两张图片是一样的。

相似度度量指标有好多,python下有人实现了各种度量指标,项目名为sewar;该项目当前已实现的度量指标如下:

  • Mean Squared Error (MSE)
  • Root Mean Squared Error (RMSE)
  • Peak Signal-to-Noise Ratio (PSNR, ieee)
  • Structural Similarity Index (SSIM, ieee)
  • Universal Quality Image Index (UQI, ieee)
  • Multi-scale Structural Similarity Index (MS-SSIM, ieee)
  • Erreur Relative Globale Adimensionnelle de Synthèse (ERGAS)
  • Spatial Correlation Coefficient (SCC)
  • Relative Average Spectral Error (RASE)
  • Spectral Angle Mapper (SAM)
  • Visual Information Fidelity (VIF)
  • Block Sensitive - Peak Signal-to-Noise Ratio (PSNR-B)

考量了下,貌似MSESSIM比较常用,所以项目中就用了这两个度量指标。

因为$ RMSE = \sqrt{MSE} $,所以就不考RMSE了。

因为MSESSIM都比较好实现,我就没有用sewar了。

图片的数据为$ {x}\times{y} $的矩阵,每个点由(r, g, b)组成(这里先简化,忽略掉alpha),计算MSE,需要把

$$ MSE = \frac{1}{n}\sum_{i=1}^n{(Y_i-\hat{Y_i})^2} $$

调整为

$$ MSE = \frac{1}{x\times{y}}\sum_{i=0..x, j=0..y}{(P_{i,j}-\hat{P_{i,j}})^2} $$

SSIM的计算公式为:

$$ SSIM(x, y) = \frac{(2\mu_{x}\mu_{y}+c_{1})(2\sigma_{xy}+c_{2})}{(\mu_{x}^{2}+\mu_{y}^{2}+c_{1})(\sigma_{x}^{2}+\sigma_{y}^{2}+c_{2})} $$

SSIM我直接用skimage.metrics.structural_similarity,没有自己写了,懒~