我开发了一个用于图像比较的应用程序。我在这里比较颜色。参考图表在数据库中。我的应用程序的工作原理就像..通过相机捕捉颜色。camera由camera API控制,而不是intent。并将捕获的图像与参考图进行比较。我的问题很轻。我正在拍摄白色背景的图像..但根据Light change的说法,输出的变化很大。我使用的是欧几里德距离。由于光线变化,我无法获得正确的输出。有没有人有什么建议:解决灯光问题??有没有对图像进行归一化的方法??我使用的是android 2.2
发布于 2013-02-21 18:21:33
也许你可以使用一些开源的图像处理库,它们为图像比较提供了方便的选项。
我建议你使用OpenCV,它有许多图像处理功能,你可以很容易地将它集成到安卓系统中。
OpenCV
也许这可以帮助你解决光线问题。
发布于 2013-06-19 19:42:47
如果你面对的是浅色背景,那么我建议使用两个图像的所有像素的ARBB值,你可以比较两个图像的ARGB值,我最近在我的一个项目中完成了这个任务。下面是其中的一小段代码。
int[] getAvgARGB(int[] imagePixels ){ int [] argbColection =新int4;int pixcel=0,Aavg=0,Ravg =0,Gavg=0,Bavg=0;int pixcelSize =0;for(int i=0;i> 24) & 0xFF;//隔离Alpha值...int R=(像素>> 16) & 0xFF;//隔离红色通道值...int G=(像素>> 8) & 0xFF;//隔离绿色通道值...int B= pixcel & 0xFF;//隔离蓝色通道值...Aavg += A;Ravg += R;Gavg += G;Bavg += B;} pixcelSize = imagePixels.length;argbColection =Aavg/像素大小;argbColection1 =Ravg/像素大小;argbColection2 =Gavg/像素大小;argbColection3 =Bavg/像素大小;return argbColection;}
发布于 2014-01-26 13:42:48
如果你想像这样检查色差:
http://en.wikipedia.org/wiki/Color_difference
您可以使用Catalano Framework,
它可以在Java和Android上运行。
使用色差的示例:
float[] lab = ColorConverter.RGBtoLAB(100, 120, 150, ColorConverter.CIE2_D65);
float[] lab2 = ColorConverter.RGBtoLAB(50, 80, 140, ColorConverter.CIE2_D65);
double diff = ColorDifference.DeltaC(lab, lab2);https://stackoverflow.com/questions/14997111
复制相似问题