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

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

Jun 06, 2016 pm 08:38 PM
imagick Histogramme

玩过单反相机的人应该都知道图像直方图(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实现的图像直方图开源项目,效果不错,值得学习。
最后顺便说一下,如果你对摄影知识感兴趣,可参考:。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Transparence des images via php et Imagick Transparence des images via php et Imagick Jul 29, 2023 am 09:45 AM

Introduction à la transparence des images via PHP et Imagick : La transparence des images est une exigence courante en matière de traitement d'image. En rendant transparente une certaine couleur ou une certaine zone de l'image, divers effets spéciaux peuvent être obtenus. Cet article expliquera comment utiliser la bibliothèque PHP et Imagick pour réaliser le traitement de la transparence des images et fournira des exemples de code pour référence. Imagick est une puissante bibliothèque de traitement d'image qui offre une multitude de fonctions de traitement d'image, notamment la lecture, l'édition, la sauvegarde d'images, etc. Avec Imagick nous

Meilleures pratiques pour le redimensionnement d'images à l'aide de PHP et Imagick Meilleures pratiques pour le redimensionnement d'images à l'aide de PHP et Imagick Jul 29, 2023 pm 05:57 PM

Meilleures pratiques pour le redimensionnement d'images à l'aide de PHP et d'Imagick Citation : À l'ère d'Internet moderne, les images font partie intégrante des pages Web et des applications. Afin d'améliorer l'expérience utilisateur et d'accélérer le chargement des pages Web, les images doivent généralement être redimensionnées pour s'adapter aux différents appareils d'affichage et résolutions. Cet article expliquera comment utiliser PHP et la bibliothèque Imagick pour implémenter les meilleures pratiques de redimensionnement d'image et fournira des exemples de code. 1. Installez l'extension Imagick Avant de commencer, nous devons d'abord nous assurer que le serveur.

Utilisez PHP et Imagick pour implémenter la conversion des couleurs des images Utilisez PHP et Imagick pour implémenter la conversion des couleurs des images Jul 29, 2023 pm 04:49 PM

Utiliser PHP et Imagick pour réaliser la conversion des couleurs des images Introduction : Dans le développement Web, nous avons souvent besoin de traiter des images, et l'un des besoins courants est de modifier la couleur des images. Cet article explique comment utiliser les extensions PHP et Imagick pour réaliser la conversion des couleurs des images. Imagick est une puissante extension de traitement d'image pour PHP qui fournit de nombreuses méthodes riches en fonctionnalités, notamment la découpe, la mise à l'échelle, la rotation et bien plus encore. En termes de conversion des couleurs, Imagick propose également une série de méthodes pour obtenir

Amélioration de la netteté des images via PHP et Imagick Amélioration de la netteté des images via PHP et Imagick Jul 29, 2023 pm 01:33 PM

Netteté des images via PHP et Imagick Dans le traitement d'images moderne, la netteté est une technologie courante qui peut améliorer les détails et la clarté des images et les rendre plus vives. Dans cet article, nous expliquerons comment utiliser PHP et la bibliothèque Imagick pour obtenir une netteté d'image. Tout d’abord, assurez-vous que la bibliothèque Imagick est installée sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante : sudoapt-getinstallphp-imagick

Comment ajuster la couleur des images en utilisant php et Imagick Comment ajuster la couleur des images en utilisant php et Imagick Jul 28, 2023 pm 01:57 PM

Comment utiliser PHP et Imagick pour ajuster les couleurs des images Introduction : Dans le développement Web, nous devons parfois ajuster les couleurs des images pour répondre aux exigences de conception ou optimiser les effets d'image. PHP fournit une riche bibliothèque de traitement d'images, parmi laquelle Imagick est une extension puissante et facile à utiliser qui permet d'ajuster facilement la couleur des images. Cet article expliquera comment utiliser PHP et Imagick pour réaliser l'ajustement des couleurs des images et donnera des exemples de code correspondants. 1. Installez l'extension Imagick : Pour utiliser

Utilisez PHP et Imagick pour implémenter le traitement des effets spéciaux des images Utilisez PHP et Imagick pour implémenter le traitement des effets spéciaux des images Jul 28, 2023 pm 06:33 PM

Utilisez PHP et Imagick pour implémenter le traitement des effets spéciaux des images Résumé : Le traitement des effets spéciaux des images peut ajouter des effets artistiques aux images ou modifier l'apparence des images. PHP et Imagick peuvent implémenter de nombreux traitements d'effets spéciaux d'image courants. Cet article présentera certains traitements d'effets spéciaux courants et fournira des exemples de code correspondants. Installer l'extension Imagick Avant de commencer, assurez-vous que l'extension Imagick est installée. S'il n'est pas installé, vous pouvez l'installer en suivant les étapes suivantes : #Installer l'extension Imagick $pec

Obtenez un effet de mosaïque d'images via PHP et Imagick Obtenez un effet de mosaïque d'images via PHP et Imagick Jul 29, 2023 pm 07:59 PM

Obtenez un effet de mosaïque d'images via PHP et Imagick. Mosaic est un effet d'édition d'images courant et largement utilisé dans de nombreux scénarios d'application. Grâce au traitement en mosaïque des images, les détails de l'image originale peuvent être transformés en petits blocs rectangulaires ou carrés, obtenant ainsi l'effet de protéger la vie privée ou de cacher des informations sensibles. Dans cet article, nous présenterons comment utiliser PHP et la bibliothèque Imagick pour obtenir l'effet mosaïque des images. Tout d'abord, nous devons nous assurer qu'Imagick est installé sur le serveur PHP.

Obtenez un effet de découpage d'image via PHP et Imagick Obtenez un effet de découpage d'image via PHP et Imagick Jul 29, 2023 am 08:25 AM

Obtenez un effet de découpage d'image grâce à PHP et Imagick Dans le développement Web, le traitement d'image est une exigence très courante. Parmi eux, l’effet de découpage des images est une méthode de traitement très courante. En divisant une grande image en plusieurs petites images, le temps de chargement de l'image peut être efficacement réduit et le contenu de l'image peut être affiché de manière plus flexible. Cet article explique comment utiliser les extensions PHP et Imagick pour obtenir l'effet de découpage des images. Tout d’abord, nous devons nous assurer que php et l’extension Imagick sont installés sur le serveur. sinon

See all articles