Вот так ставится libreoffice в opensuse:
zypper ar -f http://download.opensuse.org/repositories/LibreOffice:/Stable/openSUSE_11.3/ LibreOffice
zypper ref
zypper in --from LibreOffice libreoffice
Вот так ставится libreoffice в opensuse:
zypper ar -f http://download.opensuse.org/repositories/LibreOffice:/Stable/openSUSE_11.3/ LibreOffice
zypper ref
zypper in --from LibreOffice libreoffice
Нашел (студенты принесли) статью "Алгоритмы биометрической идентификации личности человека на основе инвариантных признаков профильного изображения лица" автор Мумтозали Тухтасинов. В ней приведен предикат для выделения на изображении участков, которые соответствуют цвету человеческой кожи. Вот и сам предикат:
R>95 and G>40 and B>20 and max(R,G,B)-min(R,G,B)>15 and |R-G|>15 and R>G and R>B and [(R*100)/(R+G+B)]<57 and [(G*100)/(R+G+B)]<35 and [(B*100)/(R+G+B)]<35
где R,G,B - количество красного, зеленого и синего соответственно.
Судя по тестам, эта штука работает достаточно неплохо.
using System; using System.IO; using System.Collections.Generic; namespace Program { class MainClass { public delegate void PathDelegate(FileInfo di); ////// Вызывает pd для каждого файла во всех поддиректориях в rd /// /// /// root directory /// static void dirMap(DirectoryInfo rd,MainClass.PathDelegate pd) { FileInfo[] files= null; DirectoryInfo[] subdirs=null; try { files=rd.GetFiles("*"); } catch(Exception ex) { Console.WriteLine("error on "+rd.FullName+": "+ex.ToString()); } if (files!=null) { foreach (FileInfo file in files) { pd(file); } } subdirs=rd.GetDirectories("*"); foreach (DirectoryInfo d in subdirs) { dirMap(d,pd); } } public static void Main (string[] args) { if(args.Length<1){ Console.WriteLine("usage: yatsrobot path"); } Console.WriteLine("scaning "+args[0]); if(Directory.Exists(args[0])){ Console.WriteLine("directory extists"); var di=new DirectoryInfo(args[0]); dirMap(di,x=> Console.WriteLine(x.FullName)); } else{ Console.WriteLine("directory not extists"); return; } } } }