gpt4 book ai didi

image - 如何消除图像的 "reflection light"?使用 OpenCV

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:53 25 4
gpt4 key购买 nike

我的图像有“光反射”,图像上的前两个零与图像的其余部分有一些不同的光。当我将其转换为二值图像时,这部分变为白色,我需要获得数字的精确轮廓,这会造成阻碍。我怎样才能使用 OpenCV 解决这个问题?

原图https://docs.google.com/file/d/0BzUNc6BOkYrNNlE3U04wWEVvVE0/edit?usp=sharing

二进制版本 https://docs.google.com/file/d/0BzUNc6BOkYrNeEE0U3NvOElqa1E/edit?usp=sharing

如果我增加阈值,我会丢失图像右侧的数字。我的代码:

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main ( int argc, char **argv )
{
Mat im_gray = imread("img2.jpg",CV_LOAD_IMAGE_GRAYSCALE);

Mat im_rgb = imread("img2.jpg");
cvtColor(im_rgb,im_gray,CV_RGB2GRAY);

Mat img_bw = im_gray > 90;

imwrite("image_bw2.jpg", img_bw);

return 0;
}

最佳答案

阴影和眩光不是容易处理的问题。但通过一些好的工作,它们是有可能克服的。

另一个步骤是使用您的阈值图像作为 mask 来获得另一个阈值图像。以下是一些对我有用的标准:

  • 限制中间(您现在拥有的)阈值图像的直方图中包含的像素中的主峰以外的所有像素
  • 使用导数寻找边界(cvSobel 可能有帮助)
  • 结合使用严格自适应和自由硬阈值来考虑图像不同部分的不同光照

关于image - 如何消除图像的 "reflection light"?使用 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17016797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com