作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include int main(int argc, char **argv)
{
CvPoint center;//定义一个二维坐标的点
double scale = -3;
int i,j;
IplImage *image = argc ==2? cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR):0;//打开一张图片
if(!image)
return -1;
center=cvPoint(image->width/2,image->height/2);//构造这个二维坐标的点
for(i=0;iheight;i++)
for(j=0;jwidth;j++)
{
double dx=(double)(j-center.x)/center.x;
double dy=(double)(i-center.y)/center.y;
double weight =exp((dx*dx+dy*dy)*scale);/*可以使用opencv定义的宏来提取象素值,
假设灰度图像image,存取其i行j列的象素可以这样:CV_IMAGE_ELEM(image, uchar, i, j)
如果是彩色图像就是
CV_IMAGE_ELEM(image, uchar, i, 3*j)
CV_IMAGE_ELEM(image, uchar, i, 3*j+1)
CV_IMAGE_ELEM(image, uchar, i, 3*j+2) */
uchar * ptr=&CV_IMAGE_ELEM(image,uchar,i,j*3);
ptr[0]=cvRound(ptr[0]*weight);// 将浮点数转化为整数。
ptr[1]=cvRound(ptr[1]*weight);
ptr[2]=cvRound(ptr[2]*weight);
}
cvSaveImage("copy.jpg",image);//保存图像/*打开图像*/
cvNamedWindow("Window",1);
cvShowImage("Window",image);
cvWaitKey(-1);
return 0;
}

转载于:https://www.cnblogs.com/gnuhpc/archive/2012/06/28/2568755.html

【OpenCV学习】梯度化一张图片相关推荐

  1. opencv 学习笔记——读入一张图片,并将其转为灰度图

    读入一张RGB彩色图片,并将其转为灰度图 源码如下: #include <opencv2\highgui\highgui.hpp> #include <opencv2/opencv. ...

  2. OPENCV学习(更新)

    目录 OPENCV学习1 显示一张图片: 用==cv2.imread==来读取图片 ==定义函数cv_show来代替这三行代码(要显示图片每次都要输入这三行代码,非常麻烦)== ==上面是RGB,现在 ...

  3. OpenCV学习之六: 使用方向梯度直方图估计图像旋转角度

    OpenCV学习之六: 使用方向梯度直方图估计图像旋转角度 原文:http://blog.csdn.net/zhjm07054115/article/details/26964275 下面的代码通过计 ...

  4. opencv学习笔记17:梯度运算之laplacian算子及其应用

    laplacian算子理论 前文介绍了sobel算子及其函数使用 和scharr算子及其函数使用 使用方法 不同算子比较 sobel,和scharr算子:右边121列-左边121列.右边-3,10,3 ...

  5. opencv学习笔记16:梯度运算之scharr算子及其函数使用

    前文介绍了sobel算子 opencv学习笔记14:sobel算子及其函数使用 scharr算子理论 系数和sobel不一样,其他一样. scharr函数使用 dst=cv2.Scharr(src,d ...

  6. OpenCV学习笔记(十一):阈值化:threshold(),adaptivethreshold()

    OpenCV学习笔记(十一):阈值化:threshold(),adaptivethreshold() 一.定义: 1)固定阈值操作 double threshold( InputArray src, ...

  7. OpenCV学习笔记(八):形态学morpholgy(2):开/闭运算,形态学梯度、顶帽/黑帽morphologyEx()

    OpenCV学习笔记(八):形态学morpholgy(2):开.闭运算,形态学梯度.顶帽.黑帽:morphologyEx() 数学形态学(Mathematical morphology) 是一门建立在 ...

  8. opencv学习笔记之二值化

    opencv学习笔记之二值化 1.什么是二值化 二值化,从名词意义上可以看出来,是将一共物体转化成两个值.二值即:0或255.即一个白色一个黑色.即一个图片经过二值化之后会显示成白色和黑色的形式. 2 ...

  9. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

最新文章

  1. android 8.0可以实现后台包活么,Android 8.0 应用保活实践 · Jaqen Ng
  2. BZOJ5137lg4081(广义后缀自动机,set启发式合并)
  3. Flutter实现帧动画
  4. 串口通讯你真的会了吗?不妨看看这些经验
  5. most recent call last 报错_视频|救援情景剧、创意快闪……400w+人次为重庆这场消防宣传活动打call...
  6. 句句真研—每日长难句打卡Day10
  7. c# mvc ajax 提交与 接收参数
  8. 射频IC理论知识/参考书
  9. matlab画森林图,R语言meta分析(4)网状Meta 分析
  10. Jenkins:This is especially strange since your build otherwise succeeded.及不是内外部指令问题
  11. 2021湖北省技能高考成绩查询,刚刚!湖北高考查分及志愿填报时间公布!
  12. NOD32 ID及升级服务器
  13. B. Remove Prefix
  14. 菜鸟都应该知道的倾斜摄影测量知识
  15. yolo模型是什么神经网络,yolo是卷积神经网络吗
  16. x平方检验计算_卡方检验具体怎么计算
  17. SQL语句:分组查询
  18. 微信curl上传客服头像接口遇到的坑
  19. 流计算 Oceanus | Flink JVM 内存超限的分析方法总结
  20. taglib.class.php,thinkphp5 taglib标签库自定义

热门文章

  1. 不是每个人的一生都会有贵人相助
  2. 穷人的孩子真的早当家吗?
  3. 在构造函数中使用new时应注意的事项
  4. 命令查看IPV6的IP,路由,邻居信息
  5. android各版本市场占有率报告,你用的是哪个版本 Android系统报告:果冻豆市占率升至62%...
  6. db2 联合数据源 mysql_详解DB2中联合SQL Server数据
  7. 如何监视SQL Server tempdb数据库
  8. SQL Server 2014中的混合云和Hekaton功能
  9. 如何在SQL Server中使用数据质量服务清除主数据服务数据
  10. [补档]noip2019集训测试赛(九)