图像变换——对数变换

原创 2013年12月04日 17:29:30

对数变换是将窄带低灰度输入图像值映射为一宽带输出值。相对的是输入灰度的高调整值。这种变化可以扩展被压缩的高值图像中的暗像素。相对的是反对数变换的调整值。

 

#include "math.h"
#include"cv.h"
#include"highgui.h"
//#include <iostream>
using namespace std;


int main(int argc,char **argv)
{
 /*IplImage *img=cvLoadImage("F:\HU\testopencv\pp.jpg");
 cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);
 cvShowImage("Example1",img);
 cvWaitKey(0);
 cvReleaseImage(&img);
 cvDestroyWindow("Example1"); */
 //图像反转
 IplImage *pImg;
 IplImage *pImg_gray;
 if(argc == 3 && (pImg = cvLoadImage(argv[1],-1))!= 0)
 {  
  pImg_gray = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 1);
  cvCvtColor(pImg,pImg_gray,CV_BGR2GRAY);
  
  int img_width = pImg->width;//image width
  int img_height = pImg->height;//image height

  uchar *data;
  data = (uchar *)pImg_gray->imageData;

  for (int i = 0; i < img_height - 1; i++)
  {
   for (int j = 0; j < img_width - 1; j++)
   {

    uchar cur = data[i * img_width + j];
     
    //cur =  3 * log((double)cur + 1.0);
    cur =  6 * sqrt((float)cur);
    if (cur < 0)
    {
     cur =0;
    }
    else if(cur > 255)
    {
     cur =255;
    }
   }
  }
 
  cvSaveImage(argv[2],pImg_gray);

  cvNamedWindow("log", 1);//create window
 
  cvShowImage("log", pImg_gray);

  cvWaitKey(0);

  cvDestroyWindow("canny");

  cvReleaseImage(&pImg);
  cvReleaseImage(&pImg_gray);
  
  return 0;
 }
 //printf("%s\n %s\n%s\n", argv[0],argv[1],argv[2]);
 return -1;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

图像处理-基本算法之对数变换

对数变换实现了图像灰度扩展和压缩的功能。它扩展低灰度值而压缩高灰度值,让图像的灰度分布更加符合人的视觉特征。     代码如下: [cpp] view plaincopyprint...

数字图像处理-空间域图像增强(一)(图像反转,对数变换,幂次变换、分段线性变换)

空间域增强的第一部分:图像反转,对数变换,幂次变换、分段线性变换

opencv入门学习之五:图像的对数变换

博客用于知识记录和学习交流,欢迎大家互动学习。 作者:JackGao24 博客园文章链接: 作者:JackGao16 CSDN文章链接: 邮箱:gshuai16@mail.ustc.edu.c...

灰度图像的对数变换原理及OpenCV代码实现!

对数变换的公式为: 其中c为常数,r>=0  对数变换目前我知道的有两个作用: ①因为对数曲线在像素值较低的区域斜率较大,像素值较高的区域斜率比较低,所以图像经过对数变换之后,在较暗的区域对比度将得...

图像预处理——对数变换

[图像处理]_对数变换  算法实现 对数变换可实现图像的水平平移、竖直平移、对称变换等操作 也可实现图像灰度的扩展和压缩功能。 实现代码如下:  int LogTranslation(Mat srcI...

数字图像的基本灰度变换函数

图像反转,底片效果反转灰度范围[0,L-1]的图像需要使用L-1减去图像灰度值,公式: s = L-1-rmatlab代码>> gyy = imread('gyy.jpg'); >> L = uin...

[数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

灰度变换,属于一个非常重要的概念。这里主要参考《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 的第三章。书中所有的实验...

【数字图像处理】灰度变换函数(对数变换、反对数变换、幂次变换)

// 对比度增强.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include using namespace...

[数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

灰度变换,属于一个非常重要的概念。这里主要参考《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 的第三章。书中所有的实验...
  • thnh169
  • thnh169
  • 2013年10月14日 16:54
  • 14174

[数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

灰度变换,属于一个非常重要的概念。这里主要参考《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 的第三章。书中所有的实验...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图像变换——对数变换
举报原因:
原因补充:

(最多只允许输入30个字)