Heim php教程 php手册 php中使用Imagick实现图像直方图的实现代码

php中使用Imagick实现图像直方图的实现代码

Jun 06, 2016 pm 08:38 PM
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实现的图像直方图开源项目,效果不错,值得学习。
最后顺便说一下,如果你对摄影知识感兴趣,可参考:。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Bildtransparenz durch PHP und Imagick Bildtransparenz durch PHP und Imagick Jul 29, 2023 am 09:45 AM

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ärfung durch PHP und Imagick Bildschärfung durch PHP und Imagick Jul 29, 2023 pm 01:33 PM

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 Best Practices für die Größenänderung von Bildern mit PHP und Imagick Jul 29, 2023 pm 05:57 PM

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

Verwenden Sie PHP und Imagick, um die Farbkonvertierung von Bildern zu implementieren Verwenden Sie PHP und Imagick, um die Farbkonvertierung von Bildern zu implementieren Jul 29, 2023 pm 04:49 PM

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

Wie man Bilder mit PHP und Imagick farblich anpasst Wie man Bilder mit PHP und Imagick farblich anpasst Jul 28, 2023 pm 01:57 PM

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 Verwenden Sie PHP und Imagick, um die Spezialeffektverarbeitung von Bildern zu implementieren Jul 28, 2023 pm 06:33 PM

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 Erzielen Sie einen Bildmosaikeffekt mit PHP und Imagick Jul 29, 2023 pm 07:59 PM

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 Bild-Slicing-Effekt mit PHP und Imagick Erzielen Sie einen Bild-Slicing-Effekt mit PHP und Imagick Jul 29, 2023 am 08:25 AM

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

See all articles