在去雾算法中,受雾的影响,每个像素点的RGB值会趋于相等,基于这个事实,我计算每个点所在子块3*3的区域的,每个像素RGB值得均方差,用最大值替代该值,得到的效果图很差,代码如下,仅供自己学习反思:

void Ctry::OnTryTyr1()
{IplImage* img = cvLoadImage("C:\\Users\\Administrator\\Desktop\\pic1.jpg", -1);IplImage* pic = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);CvScalar pixel;for (int i = 1; i < img->height-1; i++){for (int j = 1; j < img->width-1; j++){     pixel = lookfor(cvGet2D(img, i - 1, j - 1), cvGet2D(img, i - 1, j), cvGet2D(img, i - 1, j + 1), cvGet2D(img, i, j - 1), cvGet2D(img, i, j), cvGet2D(img, i, j + 1), cvGet2D(img, i + 1, j - 1), cvGet2D(img, i + 1, j), cvGet2D(img, i + 1, j + 1));cvSet2D(pic, i, j, pixel);}}CvScalar pixel1, pixel2;//设置左右竖直方向边缘的像素点for (int i = 0; i < img->height; i++){pixel1 = cvGet2D(img, i, 0);pixel2 = cvGet2D(img, i, img->width-1);cvSet2D(pic, i, 0, pixel1);cvSet2D(pic, i, img->width-1, pixel2);}//设置上下水平方向边缘的像素点for (int i = 1; i < img->width - 1; i++){pixel1 = cvGet2D(img, 0, i);pixel2 = cvGet2D(img, img->height-1, i);cvSet2D(pic, 0, i, pixel1);cvSet2D(pic, img->height-1, i, pixel2);}cvSaveImage("C:\\Users\\Administrator\\Desktop\\pic2.jpg", pic);
}CvScalar Ctry::lookfor(CvScalar p1, CvScalar p2, CvScalar p3, CvScalar p4, CvScalar p5, CvScalar p6, CvScalar p7, CvScalar p8, CvScalar p9)
{vector<CvScalar > Pixel{ p1,p2,p3,p4,p5,p6,p7,p8,p9};int num = 0;  //记录第几个点的均方差值最大double temp =0;double mean=0;    //RGB像素均值double dst;vector<double>  Dst ;       //均方差Dst.clear();//将每个像素点的均方差压入容器Dst中for (auto  i : Pixel){      mean = (i.val[0] + i.val[1] + i.val[2]) / 3;dst = (i.val[0] - mean)*(i.val[0] - mean) + (i.val[1] - mean)*(i.val[1] - mean) + (i.val[2] - mean)*(i.val[2] - mean);Dst.push_back(dst);}//提取最大值点和第几个像素的均方差值最大temp = Dst[0];for (int j = 0; j <9; j++){if (Dst[j]>temp){temp = Dst[j];num = j;}  }return Pixel[num];
}

效果图:

周围像素点的最大均方差替代该点相关推荐

  1. 用numpy做图像处理

    在python中进行图像处理,我们有三个好工具:OpenCV, SciKit-Image 和 Pillow.但是在本文中,为了理解一些简单图像处理技术的基础,我们将使用numpy.所以这也是练习num ...

  2. OpenCV_图像平滑

    1.均值滤波 与一维信号一样,我们可以对图像滤波,如高通滤波和低通滤波.高通滤波可以使我们找到图片的边界,低通滤波可以使得图像平滑,去除掉图像中的噪声,模糊图像.OpenCV提供了cv.filter2 ...

  3. 计算机不属于发明保护客体,如何判断两种类型的计算机程序发明能否成为专利保护客体?...

    如何判断两种类型的计算机程序发明能否成为专利保护客体?计算机程序类的发明可以根据处理和控制对象的不同划分为两种类型:控制和处理计算机外部对象的类型,以及控制和处理计算机内部对象的类型. 由于两者在技术 ...

  4. numpy 图片填充_用numpy做图像处理(上)

    在python中进行图像处理,我们有三个好工具:OpenCV, SciKit-Image 和 Pillow.但是在本文中,为了理解一些简单图像处理技术的基础,我们将使用numpy.所以这也是练习num ...

  5. OpenCV图像滤镜操作-模糊

    提示:志当高远且脚踏实地 文章目录 一.前言 二.主要内容 模糊 边缘 浮雕 轮廓 锐化 总结 一.前言 opencv滤镜-使用opencv实现各种图像滤镜特效 二.主要内容 1.模糊 图像模糊也叫图 ...

  6. 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效

    摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现. 本文分享自华为云社区<[Python图像处理] 二十四.图像特效处理之毛玻璃.浮雕 ...

  7. [Python从零到壹] 五十六.图像增强及运算篇之图像平滑(中值滤波、双边滤波)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. C++手敲灰度图均值滤波中值滤波高斯滤波

    一.均值滤波(Meaning Filtering)概念 均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板 ...

  9. [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)...

    此文转载自:https://blog.csdn.net/Eastmount/article/details/111568397#commentBox 该系列文章是讲解Python OpenCV图像处理 ...

  10. 基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用。

    from:http://www.cnblogs.com/Imageshop/p/4679065.html 基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用.      在1979年Lee ...

最新文章

  1. 超级列表框排序mysql_超级列表框List Ctrl
  2. windows 安装
  3. 打印两个有序链表的公共部分
  4. Boost:基于Boost的异步UDP回显服务器
  5. python 选择文件对话框插件_[ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件/目录选择对话框...
  6. 【STM32】关闭JTAG接口,引脚设置推挽输出
  7. 8-1 数据结构图的主要遍历实验流程图_ReactDOM渲染流程图
  8. 【Hive】Hive的三种交互方式
  9. VS启动多个实例调试
  10. 常见设计规范与 Sketch 源文件下载集合
  11. 小程序倒计时页面跳转
  12. Android图像压缩库Tiny更新优化 解决X509TrustManager问题,重新编译libjpeg-turbo支持cpu全架构
  13. 2022-2028年中国奶茶店行业竞争策略研究及未来前景展望报告
  14. python怎么过验证_Python3基础:如何验证你的代码
  15. 萝卜小姐-Handler之系列sendMessage学习
  16. 抢鲜看:微信、支付宝、高德地图在Apple Watch上是酱紫玩啊!
  17. python软件工程师月薪-软件工程师薪水知多少?
  18. 绿色下载:CYY屏幕截图助手1.3
  19. 【Android】制作一个简易的画板
  20. C#基于联通短信Sgip协议构建短信网关程序.net

热门文章

  1. 【项目经理之修炼(9)】《初级篇》谦虚也是可以修炼的
  2. Spring使用XML的方式实现AOP的开发——Spring AOP(六)
  3. 【笔记】Java如何判断是IDE启动还是jar启动
  4. .php on line 0,windows启动apache提示PHP Startup: in Unknown on line 0
  5. android 蒙版图片带拖动_「ps|pr」大概ps的剪切蒙版和pr的轨道遮罩键是兄弟吧
  6. python game编写后为什么是一闪而过_《Python编程初学者指南》——1.6 回到Game Over程序...
  7. 计算机专业怎么转行做建筑,【土木转行·续集】土建类同学转行计算机,什么时间转最合适?...
  8. 学linux哪个版本号,初学Linux哪个发行版本好?这些更合适!
  9. mysql修改数据库与级别_数据库MySQL查看和修改事务隔离级别的实例讲解
  10. jenkins linux虚拟机,Jenkins实战演练之Linux节点任务配置