Category: php

圖片中使用HSV值進行膚色偵測

Posted by – 2008-10-08

最近想把膚色的圖片找出來,於是就Google了一下,最後發現使用HSV值去做判斷是比較好的方法。於是就用php硬幹了一個做測試,使用(((0<=$h && $h <=1.10)||$h>5.18 )&& 0.1<=$s && $s <= 0.63 && 0.35<=$v && $v <=1)當條件,效果還可以接受,原始碼如下

function rgb2hsv($r,$g,$b){
$r=$r/255;
$g=$g/255;
$b=$b/255;
$max=max($r,$g,$b);
$min=min($r,$g,$b);
$v=$max;
if($max-$min==0){
return array(0,0,$v);
}
$s=($max-$min)/$max;
if($max==$r){
$h=(6+($g-$b)/($max-$min));
}elseif($max==$g){
$h=(2+($b-$r)/($max-$min));
}elseif($max==$b){
$h=(4+($r-$g)/($max-$min));
}
$h=(($h*60)%360)*(2*pi()/360);
return array($h,$s,$v);
}
$img=imagecreatefromjpeg("./1.jpg");
$img2=imagecreatetruecolor(ImageSX($img),ImageSY($img));
for($y=0;$y&lt;ImageSY($img);$y++){
for($x=0;$x&lt;ImageSX($img);$x++){
$rgb = imagecolorat($img, $x, $y);
$r = ($rgb &gt;&gt; 16) &amp; 0xFF;
$g = ($rgb &gt;&gt; 8 ) &amp; 0xFF;
$b = $rgb &amp; 0xFF;
//print_r(rgb2hsv($r,$g,$b));
//die();
list($h,$s,$v)=rgb2hsv($r,$g,$b);
if(((0&lt;=$h &amp;&amp; $h &lt;=1.10)||$h&gt;5.18 )&amp;&amp; 0.1&lt;=$s &amp;&amp; $s &lt;= 0.63 &amp;&amp; 0.35&lt;=$v &amp;&amp; $v &lt;=1){
//if(0&lt;=$h &amp;&amp; $h &lt;=1.388 &amp;&amp; 0.23&lt;=$s &amp;&amp; $s &lt;= 0.63 &amp;&amp; 0.25&lt;=$v &amp;&amp; $v &lt;=1){
imagesetpixel( $img2 , $x  , $y  , $rgb);
//echo "==$x,$y==\n";
//var_dump($r, $g, $b);
//var_dump($h, $s, $v);
}else{
imagesetpixel( $img2 , $x , $y  , 0);
}
}
//die();
}
imagepng($img2,"2.png",9,PNG_ALL_FILTERS);

即時flash嵌入中文字型

Posted by – 2008-09-28

因為有需要在flex的程式中使用到不同的字型

但是中文字型整個包進去又大的嚇人 所以就想用動態載入的方式來解決

於是就很暴力的server端利用 flex3 sdk 即時編譯actionscript3的原始碼

來產生內含字型描述的SWF檔,並透過cache機制,讓他只有在第1次載入時需要編譯

基本上功能大致都達到了,但是目前還有兩個問題尚未解決
1.部份字型參考調整後仍嵌入
2.mxmlc編譯速度緩慢,但若改用swfmill的話,還不知道如何使用其中的嵌入字型

實作Demo 與原始碼
http://www.tkalu.com/tmp/embedFontText/

更新:

剛剛找到加速編譯的方法了

透過 haxe 把 swfill編出來的檔案再包一層就可以了

速度上達到十分滿意的效果  20個字以內幾乎沒有感覺

http://tw.news.yahoo.com/article/url/d/a/080928/2/16pnq.html
這篇文章丟進去抓字型編譯只需要 2-3秒鐘

實作Demo 與原始碼請參考
http://www.tkalu.com/tmp/embedFontText2

Solr

Posted by – 2008-09-11

PHP Naive Bayesian Filter 文章自動分類

Posted by – 2008-07-06

今天來用php實作自動文章分類功能吧 :p
其實是無意中看到PHP Naive Bayesian Filter載下來測了一下。不支援中文,英文也怪怪的。
算了直接trace code動手改吧。直接就把UI改透過Google翻譯改成英文版,資料庫的table也確認是utf8,然後在補上簡陋的中文切詞功能。OK 這樣就可以work了。丟了快50篇文章進去,準確度還可以接受拉,不過如果中文切(分)詞有比較好的處理方式,準確度應該會更好才是,不過這就不是我一個人可以搞定的事情了 XD。
demo page http://tkalu.com/tmp/phpnaivebayesian-1.0/index.php
改過的 source code http://tkalu.com/tmp/phpnaivebayesian-1.0-cjk.tgz