本次实验我们利用opencv实现简单的灰度图上色,并体验交互式画笔上色。
用opencv读取一张彩色图像作为源图像,一张灰度图作为目标图像
将源图像与目标图像从RGB空间转换到Lab空间,有两种方式:
例子:
彩色源图像:
灰度图:
Lab空间下的彩色图:
Lab空间下的灰度图:
对源图像作 Luminance remapping:
例子:
彩色图像作Luminance remapping:
扫描目标图像每一个像素(t_pixel),在源图像上寻求亮度(L通道)最佳匹配(s_pixel),将s_pixel的a,b通道值赋予t_pixel
Note: 由于实验图像较大,在源图像上可以每隔10个像素寻求最佳匹配(能加入合理的采样更佳)
将目标图像从Lab空间转换回RGB空间,上色完成
点击运行 Color.exe,打开软件
打开一张jpg图像,选好画笔与颜色,选择好颜色时需要按确定,颜色才能生效。
选择不同颜色的画笔,在Grey Scale Image窗口对不同区域进行上色,单击执行上色,在Colorized Image窗口显示上色结果
编译源码,打开cmd,利用cd 切换至exe程序所在目录(在压缩包里找一张.ppm文件放在exe程序所在目录下)
cd 切换目录:
执行程序,对car.ppm进行操作:
回车,执行完毕:
在exe目录下,能看见多出两张图像,前缀:
c2g_theta45.0_a10.0_muFULL_q0.64_ 与 c2gC_theta45.0_a10.0_muFULL_q0.64_,代表灰度图与彩色图