二值化是逐像素处理,而逐像素处理会有很多效果,这主要是给人眼看的,因为像素值的变化,直观的就是图像变化,比如颜色。
颜色变幻处理
OpenCV提供了一些图片,如下:
粗看是一些风格,细看一下,其实是各行颜色一致,看属性知道图像尺寸为256 * 30。
256是字节宽度,也是各通道取值范围。
所以,可以用查表法直接替代处理,即将上面一张图片作为输入,则各行就将原值的0-255映射成为图片相应列的值。图像尺寸设置为30,其实也无所谓多少行,至少一行就行,不过行数太少了,人看起来就感觉,行数多了,读到计算机内存里面处理也浪费。那就折衷选个30吧。
代码处理,这就看水平了,可以一次性全读入,也可以只读取需要的图片。
QString colorMapPath = THelper::File::GetPath_Resource() + "colorMap/";
QStringList fileNames;
THelper::File::BrowseDir(fileNames, colorMapPath, "*.*");
if (!COLORMAP_TABLE) {
if(fileNames.count() > 0) {
COLORMAP_TABLE = new cv::Vec3b[256 * fileNames.count()];
BYTE * pDst = (BYTE*)COLORMAP_TABLE;
foreach(QString