成像问题:如何判断图像质量?
我正在寻找确定摄影质量(jpg)的方法。 我首先想到的是将文件大小与存储在其中的像素量进行比较。 还有其他方法吗,例如检查 jpg 中的噪点量? 有人有关于这个主题的良好阅读链接或任何经验吗? 顺便说一句,我正在从事的项目是用 C# (.net 3.5) 编写的,我使用 Aurigma Graphics Mill 进行图像处理。
提前致谢!
I'm looking for ways to determine the quality of a photography (jpg). The first thing that came into my mind was to compare the file-size to the amount of pixel stored within. Are there any other ways, for example to check the amount of noise in a jpg? Does anyone have a good reading link on this topic or any experience? By the way, the project I'm working on is written in C# (.net 3.5) and I use the Aurigma Graphics Mill for image processing.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不完全清楚你所说的“质量”是什么意思,如果你的意思是JPG压缩算法中的质量设置,那么你也许可以从图像的EXIF标签中提取它(依赖于捕获设备将它们放入并没有其他人覆盖它们)您的库请参见此处:
http:// www.aurigma.com/Support/DocViewer/30/JPEGFileFormat.htm.aspx
如果您指的是任何其他类型的“质量”,那么您需要对质量提出更好的定义。 例如,过度曝光可能是一个问题,在这种情况下,寻找饱和像素将有助于确定特定类型的质量。 或者更一般地说,您可以查看 3 个颜色通道中图像直方图的统计数据(平均值、标准差)。 图像可能失焦,在这种情况下,您可以寻找图像傅里叶变换的空间频率的截止点。 如果您担心斑点噪声,那么您可以尝试对图像应用中值滤波器并与原始图像进行比较(更多的斑点噪声会产生更大的变化) - 我在这里猜测一点。
如果“质量”指的是构图等的美学特性那么 - 祝你好运!
I'm not entirely clear what you mean by "quality", if you mean the quality setting in the JPG compression algorithm then you may be able to extract it from the EXIF tags of the image (relies on the capture device putting them in and no-one else overwriting them) for your library see here:
http://www.aurigma.com/Support/DocViewer/30/JPEGFileFormat.htm.aspx
If you mean any other sort of "quality" then you need to come up with a better definition of quality. For example, over-exposure may be a problem in which case hunting for saturated pixels would help determine that specific sort of quality. Or more generally you could look at statistics (mean, standard deviation) of the image histogram in the 3 colour channels. The image may be out of focus, in which case you could look for a cutoff in the spatial frequencies of the image Fourier transform. If you're worried about speckle noise then you could try applying a median filter to the image and comparing back to the original image (more speckle noise would give a larger change) - I'm guessing a bit here.
If by "quality" you mean aesthetic properties of composition etc then - good luck!
图像的“质量”是不可测量的,因为它不对应于任何特定的值。
如果您将其视为特定尺寸图像中的像素数,则其不准确。 您可能会将在恶劣光照条件下拍摄的照片称为“质量差”,即使它的像素数与在良好光照条件下拍摄的另一张图像完全相同。 该术语通常用于谈论图像的整体效果,而不是其技术规格。
The 'quality' of an image is not measurable, because it doesn't correspond to any particular value.
If u take it as number of pixels in the image of specific size its not accurate. You might talk about a photograph taken in bad light conditions as being of 'bad quality', even though it has exactly the same number of pixels as another image taken in good light conditions. This term is often used to talk about the overall effect of an image, rather than its technical specifications.
我想做类似的事情,但想要“Soylent Green”选项,并让人们通过执行比较来对图像进行排名。 在此处查看问题回复。
I wanted to do something similar, but wanted the "Soylent Green" option and used people to rank images by performing comparisons. See the question responses here.
我认为您是在问如何确定压缩过程本身的质量。 这可以通过将 JPEG 转换为 BMP 并将该 BMP 与创建 JPEG 时的原始位图进行比较来完成。 您可以逐个像素地迭代位图,并通过对每对像素(即原始像素中的像素和JPEG)并除以像素总数。 这将为您提供原始图像和 JPEG 之间的平均差异的测量结果。
I think you're asking about how to determine the quality of the compression process itself. This can be done by converting the JPEG to a BMP and comparing that BMP to the original bitmap from with the JPEG was created. You can iterate through the bitmaps pixel-by-pixel and calculate a pixel-to-pixel "distance" by summing the differences between the R, G and B values of each pair of pixels (i.e. the pixel in the original and the pixel in the JPEG) and dividing by the total number of pixels. This will give you a measure of the average difference between the original and the JPEG.
读取图像中的像素数可以告诉您“百万像素”大小(#像素/1000000),这可能是程序质量检查的粗略形式,但它不会告诉您照片是否正确对焦,假设它应该对焦(想想快速运动的物体,如火车),也不会告诉您天气是否正确图片中有些东西值得一看,需要人或鸽子如果你更喜欢。
Reading the number of pixels in the image can tell you the "megapixel" size(#pixels/1000000), which can be a crude form of programatic quality check, but that wont tell you if the photo is properly focused, assuming it is supposed to be focused (think fast-motion objects, like trains), nor weather or not there is something in the pic worth looking at, that will require a human, or pigeon if you prefer.