图片灰度和二值化处理
图片灰度和二值化处理
<?php function adaptiveThreshold($file){ if(!$ex = getimagesize($file)){ return false; } // 打开图片 switch($ex[2]){ case IMAGETYPE_JPEG: case IMAGETYPE_JPEG2000: if(!$im = imageCreateFromJpeg($file)){ return false; } break; case IMAGETYPE_PNG: $im = imageCreateFromPng($file); break; case IMAGETYPE_GIF: $im = imageCreateFromGif($file); break; case IMAGETYPE_BMP: $im = imageCreateFromBmp($file); break; default : return false; } $gray = array_fill(0, $ex[1], array_fill(0, $ex[0], 0) ); // 转为灰阶图像 foreach($gray as $y => &$row){ foreach($row as $x => &$Y){ $rgb = imagecolorat($im, $x, $y); // 根据颜色求亮度 $B = $rgb & 255; $G = ($rgb >> 8) & 255; $R = ($rgb >> 16) & 255; $Y = ($R * 19595 + $G * 38469 + $B * 7472) >> 16; } } unset($row, $Y); // 自动求域值 $back = 127; do{ $crux = $back; $s = $b = $l = $I = 0; foreach($gray as $row){ foreach($row as $Y){ if($Y < $crux){ $s += $Y; $l++; }else{ $b += $Y; $I++; } } } $s = $l ? floor($s / $l) : 0; $b = $I ? floor($b / $I) : 0; $back = ($s + $b) >> 1; }while($crux != $back); // 二值化 $bin = $gray; foreach($bin as &$row){ foreach($row as &$Y){ $Y = $Y < $crux ? 0 : 1; } } return array( $gray, $bin, ); } if(empty($_GET["img"])){ exit("Please use $_SERVER[SCRIPT_NAME]?img=local/image/path"); } if(!$im = adaptiveThreshold($_GET["img"])){ exit("error!"); } $img = imagecreate(count($im[0][0]), count($im[0]) * 2); $rgb = array( imagecolorallocate($img, 0, 0, 0), imagecolorallocate($img, 255, 255, 255), ); $x = $y = 0; $colors = array( 0 => $rgb[0], 255 => $rgb[1] ); foreach($im[0] as $row){ do{ if(isset($colors[$row[$x]])){ $c = $colors[$row[$x]]; }else{ $c = $colors[$row[$x]] = imagecolorallocate($img, $row[$x], $row[$x], $row[$x]); } // imagesetpixel($img, $x, $y, $rgb[$row[$x] < 128 ? 0 : 1]); imagesetpixel($img, $x, $y, $c); }while(isset($row[++$x])); $x = 0; $y++; } foreach($im[1] as $row){ do{ imagesetpixel($img, $x, $y, $rgb[$row[$x]]); }while(isset($row[++$x])); $x = 0; $y++; } header("Content-Type: image/gif"); imagegif($img);
登录后复制
以上就是图片灰度和二值化处理的内容,更多相关内容请关注PHP中文网(www.php.cn)!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
<🎜>:种植花园 - 完整的突变指南
3 周前
By DDD
<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
如何修复KB5055612无法在Windows 10中安装?
3 周前
By DDD
北端:融合系统,解释
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
蓝王子:如何到达地下室
1 个月前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)