灰度图像增强(线性灰度增强)
2016-05-13 10:38
363 查看
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
void Tran_zeng(Mat &src,Mat &dst,uchar gMin,uchar gMax);
void Tran_zeng(Mat &src,Mat &dst,uchar gMin,uchar gMax)
{
dst=src.clone();
//得到原图像一份拷贝
uchar *p_data=dst.data;
int nWidth=src.cols;
//得到图像宽度
int nHeigth=src.rows;
//得到图像高度
int nLineByte=dst.cols;
//一行字节数
int nPixel;
//像素值
//逐个扫描图像中的像素点,进行灰度线性变换
for (int i=0;i<nHeigth;i++)
//行
{
for (int j=0;j<nWidth;j++)
//列
{
// 获取当前像素点的灰度值
nPixel = p_data[nLineByte * i + j];
//根据公式求出目标图像中与当前点对应的像素的灰度值
p_data[i * nLineByte + j] =(uchar)(((float)(gMax-gMin)/255)*nPixel+gMin);
}
}
}
int main()
{
Mat srcimg=imread("E:\\图片\\123.jpg");
imshow("原图",srcimg);
if (srcimg.channels()==1)
{
cout<<"加载图像正确"<<endl;
}
else
{
cout<<"彩色转灰度"<<endl;
cvtColor(srcimg,srcimg,CV_BGR2GRAY);
}
imshow("灰度图",srcimg);
Mat dstimg;
Tran_zeng(srcimg,dstimg,0,255);
imshow("增强图像",dstimg);
waitKey(0);
return 0;
}
#include <iostream>
using namespace std;
using namespace cv;
void Tran_zeng(Mat &src,Mat &dst,uchar gMin,uchar gMax);
void Tran_zeng(Mat &src,Mat &dst,uchar gMin,uchar gMax)
{
dst=src.clone();
//得到原图像一份拷贝
uchar *p_data=dst.data;
int nWidth=src.cols;
//得到图像宽度
int nHeigth=src.rows;
//得到图像高度
int nLineByte=dst.cols;
//一行字节数
int nPixel;
//像素值
//逐个扫描图像中的像素点,进行灰度线性变换
for (int i=0;i<nHeigth;i++)
//行
{
for (int j=0;j<nWidth;j++)
//列
{
// 获取当前像素点的灰度值
nPixel = p_data[nLineByte * i + j];
//根据公式求出目标图像中与当前点对应的像素的灰度值
p_data[i * nLineByte + j] =(uchar)(((float)(gMax-gMin)/255)*nPixel+gMin);
}
}
}
int main()
{
Mat srcimg=imread("E:\\图片\\123.jpg");
imshow("原图",srcimg);
if (srcimg.channels()==1)
{
cout<<"加载图像正确"<<endl;
}
else
{
cout<<"彩色转灰度"<<endl;
cvtColor(srcimg,srcimg,CV_BGR2GRAY);
}
imshow("灰度图",srcimg);
Mat dstimg;
Tran_zeng(srcimg,dstimg,0,255);
imshow("增强图像",dstimg);
waitKey(0);
return 0;
}
相关文章推荐
- 马尔可夫链
- 使用C#实现SSLSocket加密通讯
- Spring基于注解的Cache支持
- 【转】 ps -aux中STAT列的标志位
- vim和xshell配色
- 我喜欢你,非常非常喜欢,但是到不了爱的程度
- failed to obtain a cell from its dataSource 解决方案
- 使用友盟快速分享与第三方登录注意事项
- iOS5 strong, weak, unsafe_unretained ARC
- 将Tomcat注册为windows服务
- scrapy定制爬虫-爬取javascript内容
- HOOK启思录---前言:HOOK是一种思想
- DeviceTree基础
- 设计模式之适配器模式
- react-router学习笔记之入门
- 光衰、功率匹配
- 关于解决form表单记录上次保存填写记录清空
- ScalaTour 2.函数
- JavaScript重载函数实例剖析
- Qt之图形(QPainterPath)