Opencv学习手册(四)--- 图像灰度变换
来源:互联网 发布:python 获取期货数据 编辑:程序博客网 时间:2024/04/29 05:34
#include <opencv2/opencv.hpp>using namespace cv;/*灰度变换函数ImageAdjust其中,源图像src和目标图像dst均为8比特的灰度图像默认的参数值有: [low, high] = [0,1]; [bottom, top] = [0,1]; 线性变换:将源灰度值的[low, high]区间线性变换到[bottom, top]区间如果变换成功,返回0,否则返回非零值。*/int ImageAdjust(IplImage* src, IplImage* dst, double low, double high, double bottom, double top) { if(low<0 || low>1 || high <0 || high>1 || bottom<0 || bottom>1 || top<0 || top>1 || low>=high) return -1;//输入参数值不符合函数要求,则返回失败值 //将输入参数缩放到8比特图像的灰度级别[0, 255]上 double low2 = low*255; double high2 = high*255; double bottom2 = bottom*255; double top2 = top*255; double k = (top2 - bottom2)/(high2 - low2);//计算直线斜率 int x,y; double val; //对图像中的像素逐个进行灰度变换 for( y = 0; y < src->height; y++)//y为像素的纵坐标 { for (x = 0; x < src->width; x++)//x为像素的横坐标 { val= (uchar) src->imageData [ src->widthStep*y + x]; //得到源图像中像素点(x, y) 的灰度值if(val>=1&&val<=125)val=0;if(val>125&&val<=255)val=255;//val = (val - low2)* k + bottom2; //val = 255-val;//图像求反//越界处理,保证灰度值落在有效的灰度级别内 if(val>255) val=255; if(val<0) val=0;dst->imageData[ dst->widthStep*y + x] = val;//对目标图像的像素点(x, y)重新赋灰度值 } } return 0;}int main( int argc, char** argv ) {argv[1]="test.jpg"; IplImage *src = 0, *dst = 0; if( argc != 2 || (src=cvLoadImage(argv[1], 0)) == NULL)//参数0表示强制转换为单通道灰度图像 return -1;//指定读取灰度图像,否则程序退出 cvNamedWindow( "src", 1 ); cvNamedWindow( "result", 1 ); //以下为图像增强过程//先复制源图像 dst = cvCloneImage(src); //输入参数 [0,0.5] 和 [0.5,1]进行灰度变换 if( ImageAdjust( src, dst, 0, 0.5, 0.5, 1)!=0) return -1; cvShowImage( "src", src ); cvShowImage( "result", dst ); cvWaitKey(0); cvDestroyWindow("src"); cvDestroyWindow("result"); cvReleaseImage( &src ); cvReleaseImage( &dst ); return 0;}
0 0
- Opencv学习手册(四)--- 图像灰度变换
- Opencv学习手册(三)---图像坐标变换
- OpenCV学习笔记(32)图像载入、显示、保存、变换灰度图 总结
- OpenCV简单图像处理 灰度变换
- 利用Opencv进行图像灰度变换处理
- opencv入门学习之四: 灰度图像的二值化
- opencv学习心得五----图像变化(灰度变换、二值变换)
- 【OpenCV图像处理】四、图像的几何变换(上)
- 【OpenCV图像处理】九、常见的图像灰度变换
- 学习OpenCV(四) 改变图像的对比度和亮度——像素变换
- openCV学习笔记(四)--图像的几何变换Geometric Transformations of Images
- 灰度图像的对数变换原理及OpenCV代码实现!
- Matlab 图像灰度变换
- mtalab图像灰度变换
- opencv学习(一)实现将彩色图像转换成灰度图像和二值图像
- 灰度图像--图像增强 灰度变换
- 【OpenCV】图像变换(四-1)-霍夫变换线段检测
- 【OpenCV】图像变换(四-2)霍夫变换圆检测
- MySql技巧个人笔记
- 求和
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- ajax基础
- 阿里云linux服务器如何挂载数据盘
- Opencv学习手册(四)--- 图像灰度变换
- framebuffer结构体分析
- android自定义数字软键盘、修改review按钮的样式
- 微博推荐算法简述
- 四种方案解决ScrollView嵌套ListView问题
- 奇偶性
- CocoaPods: Pod update/install 出错
- angular-cookies 【ipCookie】操作
- kettle odbc缺失解决方式