opencv - 如何使用 OpenCV 从移动相机拍摄的图像中去除阴影?

标签 opencv contour shadow shadow-removal

我需要在图像中找到最大的矩形,但是当我找到轮廓时,阴影变成了轮廓的一部分。

关于如何去除/最小化阴影的任何建议。

原图

enter image description here

带轮廓的图像

enter image description here

最佳答案

您可以使用像 Canny 这样的边缘检测器:

cv::Mat image = cv::imread( "C:/Users/John/Documents/StackOverflow/t8keM.png" );
cv::Mat gray_image, dst, color_dst;

cvtColor( image, gray_image, CV_BGR2GRAY );
Canny( gray_image, dst, 50, 200, 3 );
cvtColor( dst, color_dst, CV_GRAY2BGR );

cv::imshow( "image", image );
cv::imshow( "canny", color_dst );

cv::waitKey();

结果: enter image description here

之后,您可以使用 cv::findContours() 来查找矩形。

关于opencv - 如何使用 OpenCV 从移动相机拍摄的图像中去除阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31561411/

相关文章:

java - SURF 和 SIFT 算法在 OpenCV 3.0 Java 中不起作用

python - 使用 Opencv 获取轮廓内的平均颜色

r - 具有 osrm walk 或 foot profile 的服务器可在 R 中使用吗?

CSS 文本阴影与透视

android - 有没有办法在 Android 上向 TextView 添加内部阴影?

c++ - OpenCV "Undefined reference to ' cv::imread' 等 C++

opencv - OPENCV:如何减去摄像头的背景?

opencv - 如何围绕轮廓绘制矩形?

css - 图像反射不应有阴影

python - 跟踪视频 OpenCV 中的圆圈