php中使用Imagick实现图像直方图的实现代码
玩过单反相机的人应该都知道图像直方图(Image Histogram),简单点说,它通过计算每个色阶在总像素中所占的比例来反映图像的曝光情况。
我并不打算详细解释专业名词,有兴趣的读者可以查阅文章结尾处的参考链接,那里有通俗易懂的解释:
我们先找一个例子图像(用Canon 550D拍的):
例子图片:butterfly.jpg
下面看看如何使用Imagick实现图像直方图:
代码如下:
$file = 'butterfly.jpg';
$size = array(
'width' => 256,
'height' => 100,
);
$image = new Imagick($file);
$histogram = array_fill_keys(range(0, 255), 0);
foreach ($image->getImageHistogram() as $pixel) {
$rgb = $pixel->getColor();
$histogram[$rgb['r']] += $pixel->getColorCount();
$histogram[$rgb['g']] += $pixel->getColorCount();
$histogram[$rgb['b']] += $pixel->getColorCount();
}
$max = max($histogram);
$threshold = ($image->getImageWidth() * $image->getImageHeight()) / 256 * 12;
if ($max > $threshold) {
$max = $threshold;
}
$image = new Imagick();
$draw = new ImagickDraw();
$image->newImage($size['width'], $size['height'], 'white');
foreach ($histogram as $x => $count) {
if ($count == 0) {
continue;
}
$draw->setStrokeColor('black');
$height = min($count, $max) / $max * $size['height'];
$draw->line($x, $size['height'], $x, $size['height'] - $height);
$image->drawImage($draw);
$draw->clear();
}
$image->setImageFormat('png');
$image->writeImage('histogram.png');
?>
注:代码中之所以加入$threshold这个阀值,是因为有时候某些色阶的值可能会非常大,如果不做处理会干扰最终的生成效果。至于为什么要先除256,接着又乘12,没有什么道理可言,都是我一拍脑袋决定的,你也可以使用别的方法。
最终生成的直方图和Photoshop的效果基本一样,这里就贴一下Photoshop的:
Photoshop生成的直方图
注:使用Photoshop打开图片后,选择窗口,然后选择直方图即可。
本文说的实际上只是RGB通道的直方图绘制方法,原理上,RGB直方图是红绿蓝直方图累加的结果,至于红绿蓝三原色各自的直方图,上面代码稍加修改即可。
注:XARG.ORG上有一个HTML5实现的图像直方图开源项目,效果不错,值得学习。
最后顺便说一下,如果你对摄影知识感兴趣,可参考:。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Einführung in die Bildtransparenz durch PHP und Imagick: Bildtransparenz ist eine häufige Anforderung bei der Bildverarbeitung. Indem eine bestimmte Farbe oder ein bestimmter Bereich im Bild transparent gemacht wird, können verschiedene Spezialeffekte erzielt werden. In diesem Artikel wird erläutert, wie Sie mit PHP und der Imagick-Bibliothek eine Bildtransparenzverarbeitung erreichen, und Codebeispiele als Referenz bereitstellen. Imagick ist eine leistungsstarke Bildverarbeitungsbibliothek, die zahlreiche Bildverarbeitungsfunktionen bietet, darunter das Lesen, Bearbeiten, Speichern von Bildern usw. Mit Imagick wir

Bildschärfen durch PHP und Imagick In der modernen Bildverarbeitung ist das Schärfen eine gängige Technologie, die die Details und Klarheit von Bildern verbessern und sie lebendiger machen kann. In diesem Artikel stellen wir vor, wie Sie PHP und die Imagick-Bibliothek verwenden, um eine Bildschärfung zu erreichen. Stellen Sie zunächst sicher, dass die Imagick-Bibliothek auf Ihrem Server installiert ist. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren: sudoapt-getinstallphp-imagick

Best Practices für die Größenänderung von Bildern mit PHP und Imagick Zitat: Im modernen Internetzeitalter sind Bilder ein integraler Bestandteil von Webseiten und Anwendungen. Um das Benutzererlebnis zu verbessern und das Laden von Webseiten zu beschleunigen, muss die Größe von Bildern normalerweise geändert werden, um sie an unterschiedliche Anzeigegeräte und Auflösungen anzupassen. In diesem Artikel wird erläutert, wie Sie mit PHP und der Imagick-Bibliothek Best Practices für die Größenänderung von Bildern implementieren und Codebeispiele bereitstellen. 1. Installieren Sie die Imagick-Erweiterung. Bevor wir beginnen, müssen wir zunächst sicherstellen, dass der Server

Verwendung von PHP und Imagick zur Farbkonvertierung von Bildern Einführung: In der Webentwicklung müssen wir häufig Bilder verarbeiten, und eine der häufigsten Anforderungen besteht darin, die Farbe von Bildern zu ändern. In diesem Artikel wird erläutert, wie Sie PHP- und Imagick-Erweiterungen verwenden, um eine Farbkonvertierung von Bildern zu erreichen. Imagick ist eine leistungsstarke Bildverarbeitungserweiterung für PHP, die viele funktionsreiche Methoden bietet, darunter Bildschneiden, Skalieren, Drehen und mehr. Im Hinblick auf die Farbkonvertierung bietet Imagick auch eine Reihe von Methoden an

So verwenden Sie PHP und Imagick zur Farbanpassung von Bildern. Einführung: In der Webentwicklung müssen wir manchmal Bilder farblich anpassen, um Designanforderungen zu erfüllen oder Bildeffekte zu optimieren. PHP bietet eine umfangreiche Bildverarbeitungsbibliothek, darunter Imagick, eine leistungsstarke und benutzerfreundliche Erweiterung, mit der sich die Farbe von Bildern problemlos anpassen lässt. In diesem Artikel wird die Verwendung von PHP und Imagick zur Farbanpassung von Bildern vorgestellt und entsprechende Codebeispiele gegeben. 1. Installieren Sie die Imagick-Erweiterung: Zur Verwendung

Verwenden Sie PHP und Imagick, um die Spezialeffektverarbeitung von Bildern zu implementieren. Zusammenfassung: Die Spezialeffektverarbeitung von Bildern kann den Bildern einige künstlerische Effekte hinzufügen oder das Erscheinungsbild der Bilder ändern. PHP und Imagick können viele gängige Bildspezialeffektverarbeitungen implementieren. In diesem Artikel werden einige gängige Spezialeffektverarbeitungen vorgestellt und entsprechende Codebeispiele bereitgestellt. Installieren Sie die Imagick-Erweiterung. Bevor Sie beginnen, stellen Sie sicher, dass Sie die Imagick-Erweiterung installiert haben. Wenn es nicht installiert ist, können Sie es mit den folgenden Schritten installieren: #Imagick-Erweiterung $pec installieren

Erzielen Sie einen Bildmosaikeffekt mit PHP und Imagick. Mosaik ist ein gängiger Bildbearbeitungseffekt und wird in vielen Anwendungsszenarien häufig verwendet. Durch die Mosaikverarbeitung von Bildern können die Details im Originalbild in kleine rechteckige oder quadratische Blöcke umgewandelt werden, wodurch die Privatsphäre geschützt oder vertrauliche Informationen verborgen werden. In diesem Artikel stellen wir vor, wie Sie mit PHP und der Imagick-Bibliothek den Mosaikeffekt von Bildern erzielen. Zuerst müssen wir sicherstellen, dass Imagick auf dem PHP-Server installiert ist

Erzielen Sie einen Image-Slicing-Effekt mit PHP und Imagick. In der Webentwicklung ist die Bildverarbeitung eine sehr häufige Anforderung. Unter diesen ist der Slicing-Effekt von Bildern eine sehr verbreitete Verarbeitungsmethode. Durch die Aufteilung eines großen Bildes in mehrere kleine Bilder kann die Ladezeit des Bildes effektiv verkürzt und der Bildinhalt flexibler dargestellt werden. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP- und Imagick-Erweiterungen den Slicing-Effekt von Bildern erzielen. Zuerst müssen wir sicherstellen, dass PHP und die Imagick-Erweiterung auf dem Server installiert sind. wenn nicht
