常州机器视觉培训

常州上位机软件开发

常州工业机器人编程设计培训

常州PLC培训

常州PLC

常州PLC编程培训

常州电工培训

常州和讯plc培训中心欢迎您!
热门课程
联系方式
  • 常州和讯自动化培训中心
  • 常州市新北区府琛商务广场2号楼1409室
  • 电话:0519-85602926
  • 手机:15861139266 13401342299
当前位置:网站首页 > 新闻中心 新闻中心
Opencv去除图像阴影-常州上位机培训,常州机器视觉培训
日期:2024-3-29 16:24:46人气:  标签:常州上位机培训 常州机器视觉培训

前言

浏览OpenCV相关文章时看到了《基于OpenCV的图像阴影去除》,源码也是用pytyon实现的,分析了一下其原理,这篇我们用OpenCV的C++版来实现一下。


实现思路:

图将转为灰度图


将灰度图进行闭运算操作


闭运算后的图减去原灰度图再取反


将取反后的图使用归一化将白色背景修改贴近原图


关注机器视觉课堂持续学习


opencv实现:

    Mat src = imread("D:/opencv练习图片/去阴影.png");

    imshow("原图", src);

    //1.将图像转为灰度图

    Mat gray;

    cvtColor(src, gray, COLOR_BGR2GRAY);

    //定义腐蚀和膨胀的结构化元素和迭代次数

    Mat element = getStructuringElement(MORPH_RECT, Size(3, 3));

    int iteration = 9;

    //2.将灰度图进行闭运算操作

    Mat closeMat;

    morphologyEx(gray, closeMat, MORPH_CLOSE, element, Point(-1, -1), iteration);

    imshow("闭运算", closeMat);

    //4.闭运算后的图减去原灰度图再进行取反操作

    Mat calcMat = ~(closeMat - gray);

    imshow("calc", calcMat);

    //5.使用规一化将原来背景白色的改了和原来灰度图差不多的灰色

    Mat removeShadowMat;

    normalize(calcMat, removeShadowMat, 0, 200, NORM_MINMAX);

    imshow("dst", removeShadowMat);

原图:image.png                                                                  

 去阴影:   image.png                 

本文网址:
下一篇:没有资料

相关信息:
版权所有 CopyRight 2006-2017 江苏和讯自动化设备有限公司 常州自动化培训中心 电话:0519-85602926 地址:常州市新北区府琛商务广场2号楼1409室
苏ICP备14016686号-2 技术支持:常州山水网络
本站关键词:常州PLC培训 常州PLC编程培训 常州PLC编程 常州PLC培训班 网站地图 网站标签
在线与我们取得联系