接上篇,255值剃平头法原文称为线性变换,只能说是区间线性,其第二个“直方图正规化”方法称为全线性是合适的,只是“直方”是见不着的,其原理是假设图片的灰度值是n-m之间,而8位灰度值的最大区间是0-255,就按比列把像素灰度值略膨胀到较大的区间即可,值就不会大于255,计算公式是像素q=(255-0)/(m-n)*(p-n),此法问题在于图片的大小灰度值一般都接近于0-255,膨胀系数小致效果不明显
第三个伽马变换,把每个像素点的灰度值除以255得到0~1之间的小数,再开方(值差变大,对比度增加)或者平方(值差变小,对比度减少),还发现imshow方法可以直接转换小数到8字节整数,而不必使用astype转成np数组,转也是可以的,就是需对每个像素点乘以255再转,如图箭头指向的注释代码,得益于代数算法的曲线化,运行代码可以见到图像变得更加浑然
第四个,直方图均衡化,着实是惊喜,只是怎么也看不出来直方在哪里,均衡又在哪里。其实质是统计所有像素点在灰度0-255的分布,再按灰度0-255顺序递增叠加,就是p灰度是所有0-p灰度数量的总和,再把所得的递增表除于像素总数还原得到0-255之间的像素值,再生成图像。以吾当前的认知着实理解不了像素点灰度递增在展示图片细节的实质,但效果惊人:
从示例图可以见到,黑暗中原本不易察觉的细节都展示了出来,呈现出可见光波段外显影的效果,就像透视镜或夜视仪一般。
原文cofficient代码:
修改了的genuine代码:
原文代码使用cofficient稍显复杂,就自行修改为genuine,如图,但原理是一样的,都是递增分布除以像素点总数,是否原代码效果更新,一时也比较不出来,修改后呈现的效果也足够出色。纵观superme博主推文,内容上看是自带刷子的,贴出代码是可验证的,就是有一些参差,比如这段imshow的竟然是原图像image,或错或漏了equalHistimg,以其段位留了这么个彩蛋。
标签:代码,cv2,像素,灰度,应用,图像,像素点,255 From: https://www.cnblogs.com/qiuwenzheng/p/18258346