zzxxxxxxzz 2022-01-15 17:00 采纳率: 0%
浏览 38

opencv求不规则多边形面积,背景和多边形都渐变,如何进行二值化操作?

img


背景和多边形渐变,二值化操作难以进行,边缘检测也8行。
如何将背景和图片分开

  • 写回答

2条回答 默认 最新

  • 慷仔 2022-01-18 16:52
    关注

    我是用python的opencv尝试了解决你这个问题,应该是成功了。
    主要思路是:彩色转灰度图-》直方图均衡化(为了增加对比度)-》去噪-》边缘检测(采用x,y两个方向的梯度)。
    完整代码:

    import cv2
    import numpy as np
    import copy
    import math
    def equal_hist_demo(img):
        gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
        dst = cv2.equalizeHist(gray)
        dst = cv2.fastNlMeansDenoising(dst, None, 10, 10, 7)
        return dst
    def filter(img):
        size = 5
        kernel1 = np.zeros((size,size), np.float32)
        kernel2 = np.zeros((size, size), np.float32)
        if size % 2 == 0:
            kernel1[0:(size / 2), :] = - 1.0 / float(size);
            kernel1[(size / 2):size, :] = 1.0 / float(size);
        else:
            kernel1[0:(size//2), :] = - 1.0 / float(size - 1);
            kernel1[(size // 2  + 1):size, :] = 1.0 / float(size - 1);
        kernel2 = np.transpose(kernel1)
        img1 = copy.deepcopy(img).astype('float32') / 255
        img2 = copy.deepcopy(img).astype('float32') / 255
        img1 = (img1 - img1.mean())/(math.sqrt(img1.var()))
        img2 = (img2 - img2.mean())/(math.sqrt(img2.var()))
        img1 = cv2.filter2D(img1, -1, kernel1)
        img2 = cv2.filter2D(img2, -1, kernel2)
        ds = img1*img1 + img2 * img2
        dst = np.zeros(tuple(ds.shape), np.uint8)
        dst[ds>1.0] = 255
        return cv2.merge([dst])
    img = cv2.imread('1.png')
    himg = equal_hist_demo(img)
    fimg = filter(himg)
    cv2.imshow("1.png",fimg)
    cv2.waitKey()
    

    效果如下所示:

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月15日

悬赏问题

  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码