加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[数字图像处理学习]分段线性变换函数——灰度级分层

(2014-10-19 20:33:46)
标签:

杂谈

分类: 图像工程

1、突出图像中特定灰度范围的亮度通常是重要的,例如增强特征。

2、灰度级分成的两种基本方法:

(1)将感兴趣范围内的所有灰度值显示为一个值,其他灰度值显示为另一个值,该变换产生了一幅二值图像。

(2)激昂感兴趣范围的灰度变亮或变暗,保持图像中的其他灰度级不变。

http://s4/middle/002OBL7Wzy6MWotRq9B63&690

C/C++ DEMO:

//通用

#include <iostream>

#include <stdio.h>

 

//图像操作

#include <opencv2/core/core.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/highgui/highgui.hpp>

 

 

using namespace :: std;

using namespace :: cv;

 

int main()

{

//图像读取

Mat image = imread("Fig0312.tif");

 

//判断图像读取是否有问题

if(!image.data)

{

cout << "image read is error!" << endl;

return 0;

}

 

//图像基本信息输出

cout << "image Info:Height:" << image.size().height << " Width:" << image.size().width << endl;

 

//原始图像显示

namedWindow("Original Image");

imshow("Original Image", image);

imwrite("original.jpg", image);

 

//处理图像

int rang_min = 150;

 

int nl = image.rows;

int nc = image.cols * image.channels();

if(image.isContinuous())

{

nc = nc * nl;

nl = 1;

}

int i,j;

uchar *data;

for(j = 0; j < nl; j ++)

{

data = image.ptr<uchar>(j);

for(i = 0; i < nc; i ++)

{

if(data[i] > rang_min)       

data[i] = 255;

//else

//data[i] = 0;

}

}

 

//显示图像

namedWindow("Process Image");

imshow("Process Image", image);

 

//保存图像

imwrite("result.JPG", image);

 

waitKey(0);

 

return 0;

}

 

原始图像:

original (2)

 

处理后图片:

result (2)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有