重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.灰度线性变换
在墨竹工卡等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站制作 网站设计制作按需网站开发,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,成都外贸网站建设公司,墨竹工卡网站建设费用合理。图像的灰度线性变换是图像灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度,从而达到图像增强的目的。灰度映射通常是用灰度变换曲线来进行表示。通常来说,它是将图像的像素值通过指定的线性函数进行变换,以此来增强或者来减弱图像的灰度,灰度线性变换的函数就是常见的线性函数。
g(x, y) = k · f(x, y) + d
设源图像的灰度值为x,则进行灰度线性变换后的灰度值为y = kx + b (0<=y<=255),下面分别来讨论k的取值变化时线性变换的不同效果
(1).|k|>1时
当k>1时,可以用来增加图像的对比度,图像的像素值在进行变换后全部都线性方法,增强了整体的显示效果,且经过这种变换后,图像的整体对比度明显增大,在灰度图中的体现就是变换后的灰度图明显被拉伸了。
(2).|k|=1时
当k=1时,这种情况下常用来调节图像的亮度,亮度的调节就是让图像的各个像素值都增加或是减少一定量。在这种情况下可以通过改变d值来达到增加或者是减少图像亮度的目的。因为当k=1,只改变d值时,只有图像的亮度被改变了,d>0时,变换曲线整体发生上移,图像的亮度增加,对应的直方图整体向右侧移动,d<0时,变换曲线整体下移,图像的亮度降低,对应的直方图发生水平左移。
(3).0<|k|<1时
此时变换的效果正好与k>1时相反,即图像的整体对比度和效果都被削减了,对应的直方图会被集中在一段区域上。k值越小,图像的灰度分布也就越窄,图像看起来也就显得越是灰暗。
(4).k<0时
在这种情况下,源图像的灰度会发生反转,也就是原图像中较亮的区域会变暗,而较暗的区域将会变量。特别的,此时我们令k = -1,d = 255,可以令图像实现完全反转的效果。对应的直方图也会发生相应的变化。
相应的程序试下如下:
//实现图像的灰度线性变化 #include#include #include #include using namespace std; using namespace cv; int main() { Mat srcImg = imread("1234.jpg"); if (!srcImg.data) { cout << "读入图片失败" << endl; return -1; } imshow("原图像", srcImg); double k, b; cout << "请输入k和b值:"; cin >> k >> b; int RowsNum = srcImg.rows; int ColsNum = srcImg.cols; Mat dstImg(srcImg.size(), srcImg.type()); //进行遍历图像像素,对每个像素进行相应的线性变换 for (int i = 0; i < RowsNum; i++) { for (int j = 0; j < ColsNum; j++) { //c为遍历图像的三个通道 for (int c = 0; c < 3; c++) { //使用at操作符,防止越界 dstImg.at (i, j)[c] = saturate_cast (k* (srcImg.at (i, j)[c]) + b); } } } imshow("线性变换后的图像", dstImg); waitKey(); return 0; }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。