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

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

Jun 06, 2016 pm 08:38 PM
imagick Histogram

玩过单反相机的人应该都知道图像直方图(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实现的图像直方图开源项目,效果不错,值得学习。
最后顺便说一下,如果你对摄影知识感兴趣,可参考:。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ketelusan imej melalui php dan Imagick Ketelusan imej melalui php dan Imagick Jul 29, 2023 am 09:45 AM

Pengenalan kepada ketelusan imej melalui PHP dan Imagick: Ketelusan imej ialah keperluan pemprosesan imej biasa Dengan menjadikan warna atau kawasan tertentu dalam imej telus, pelbagai kesan khas boleh dicapai. Artikel ini akan memperkenalkan cara menggunakan perpustakaan php dan Imagick untuk mencapai pemprosesan ketelusan imej, dan menyediakan contoh kod untuk rujukan. Imagick ialah perpustakaan pemprosesan imej yang berkuasa yang menyediakan pelbagai fungsi pemprosesan imej, termasuk membaca imej, mengedit, menyimpan, dsb. Dengan Imaginck kita

Amalan terbaik untuk mengubah saiz imej menggunakan php dan Imagic Amalan terbaik untuk mengubah saiz imej menggunakan php dan Imagic Jul 29, 2023 pm 05:57 PM

Amalan Terbaik untuk Mengubah Saiz Imej Menggunakan PHP dan Petikan Imagick: Dalam era Internet moden, imej adalah sebahagian daripada halaman web dan aplikasi. Untuk meningkatkan pengalaman pengguna dan mempercepatkan pemuatan halaman web, imej biasanya perlu diubah saiz untuk menyesuaikan diri dengan peranti paparan dan resolusi yang berbeza. Artikel ini akan memperkenalkan cara menggunakan php dan perpustakaan Imagick untuk melaksanakan amalan terbaik untuk saiz semula imej, dan menyediakan contoh kod. 1. Pasang sambungan Imagick Sebelum memulakan, kita perlu memastikan bahawa pelayan

Gunakan php dan Imagick untuk mencapai penukaran warna imej Gunakan php dan Imagick untuk mencapai penukaran warna imej Jul 29, 2023 pm 04:49 PM

Menggunakan PHP dan Imagick untuk merealisasikan penukaran warna imej Pengenalan: Dalam pembangunan web, kita selalunya perlu memproses imej, dan salah satu keperluan biasa ialah mengubah suai warna imej. Artikel ini akan memperkenalkan cara menggunakan sambungan PHP dan Imagick untuk mencapai penukaran warna imej. Imagick ialah sambungan pemprosesan imej yang berkuasa untuk PHP yang menyediakan banyak kaedah yang kaya dengan ciri, termasuk pemotongan imej, penskalaan, putaran dan banyak lagi. Dari segi penukaran warna, Imagick juga menyediakan satu siri kaedah untuk dicapai

Penajaman imej melalui php dan Imagic Penajaman imej melalui php dan Imagic Jul 29, 2023 pm 01:33 PM

Penajaman imej melalui php dan Imagick Dalam pemprosesan imej moden, penajaman ialah teknologi biasa, yang boleh meningkatkan butiran dan kejelasan imej serta menjadikannya lebih jelas. Dalam artikel ini, kami akan memperkenalkan cara menggunakan php dan perpustakaan Imagick untuk mencapai penajaman imej. Mula-mula, pastikan anda memasang pustaka Imagick pada pelayan anda. Jika ia tidak dipasang, anda boleh memasangnya dengan arahan berikut: sudoapt-getinstallphp-imagick

Bagaimana untuk melaraskan warna imej menggunakan php dan Imagic Bagaimana untuk melaraskan warna imej menggunakan php dan Imagic Jul 28, 2023 pm 01:57 PM

Cara menggunakan PHP dan Imagick untuk melaraskan warna gambar Pengenalan: Dalam pembangunan web, kadangkala kita perlu melaraskan warna gambar untuk memenuhi keperluan reka bentuk atau mengoptimumkan kesan gambar. PHP menyediakan perpustakaan pemprosesan imej yang kaya, antaranya Imagick ialah sambungan yang berkuasa dan mudah digunakan yang boleh melaraskan warna gambar dengan mudah. Artikel ini akan memperkenalkan cara menggunakan PHP dan Imagick untuk merealisasikan pelarasan warna gambar, dan memberikan contoh kod yang sepadan. 1. Pasang sambungan Imagic: Untuk digunakan

Gunakan php dan Imagick untuk melaksanakan pemprosesan kesan khas imej Gunakan php dan Imagick untuk melaksanakan pemprosesan kesan khas imej Jul 28, 2023 pm 06:33 PM

Gunakan PHP dan Imagick untuk melaksanakan pemprosesan kesan khas gambar Ringkasan: Pemprosesan kesan khas gambar boleh menambah beberapa kesan artistik pada gambar atau menukar rupa gambar. PHP dan Imagick boleh melaksanakan banyak pemprosesan kesan khas imej biasa Artikel ini akan memperkenalkan beberapa pemprosesan kesan khas biasa dan menyediakan contoh kod yang sepadan. Pasang sambungan Imagick Sebelum anda bermula, pastikan anda memasang sambungan Imagick. Jika ia tidak dipasang, anda boleh memasangnya melalui langkah berikut: #Pasang sambungan Imagick $pec

Mencapai kesan mozek gambar melalui php dan Imagick Mencapai kesan mozek gambar melalui php dan Imagick Jul 29, 2023 pm 07:59 PM

Mencapai kesan mozek gambar melalui PHP dan Imagick Mosaic ialah kesan penyuntingan gambar biasa dan digunakan secara meluas dalam banyak senario aplikasi. Dengan pemprosesan mozek imej, butiran dalam imej asal boleh diubah menjadi beberapa blok kecil segi empat tepat atau persegi, dengan itu mencapai kesan melindungi privasi atau menyembunyikan maklumat sensitif. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP dan perpustakaan Imagick untuk mencapai kesan mozek imej. Pertama, kita perlu memastikan Imagick dipasang pada pelayan PHP

Mencapai kesan menghiris gambar melalui php dan Imagic Mencapai kesan menghiris gambar melalui php dan Imagic Jul 29, 2023 am 08:25 AM

Mencapai kesan penghirisan imej melalui PHP dan Imagick Dalam pembangunan web, pemprosesan imej adalah keperluan yang sangat biasa. Antaranya, kesan penghirisan gambar adalah kaedah pemprosesan yang sangat biasa. Dengan membahagikan imej besar kepada beberapa imej kecil, masa memuatkan imej boleh dikurangkan dengan berkesan dan kandungan imej boleh dipaparkan dengan lebih fleksibel. Artikel ini akan memperkenalkan cara menggunakan sambungan php dan Imagick untuk mencapai kesan penghirisan imej. Pertama, kita perlu memastikan bahawa php dan sambungan Imagick dipasang pada pelayan. jika tidak

See all articles