小编ahm*_*ama的帖子

在google colaboratory上添加数据集文件

我正在尝试将cifar数据集上传到google colabratory.我是由

'batches.meta', 'data_batch_1', 'data_batch_2', 'data_batch_3', 'data_batch_4', 'data_batch_5', 'test_batch'

我想添加上传多个文件并将它们添加到同一个地方以对其进行操作

google-colaboratory

5
推荐指数
1
解决办法
6285
查看次数

使用OpenCV消除图像背景中的波浪噪声

我想删除背景中存在的噪音.噪音不是标准模式.我想删除背景噪音,并将文字保存在白色背景上.

这是一个图像样本:

在此输入图像描述

我使用下面的代码非常简单的处理步骤.

import cv2 
import numpy as np

img = cv2.imread("noisy.PNG")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.subtract(255,gray)
ret,thresh = cv2.threshold(gray,5,255,cv2.THRESH_TOZERO)


noisy_removal = cv2.fastNlMeansDenoising(thresh, None, 65, 5, 21)
cv2.imwrite("finalresult.jpg",255-noisy_removal)
Run Code Online (Sandbox Code Playgroud)

这是输出图像:

在此输入图像描述

我怎样才能增强这个结果

python opencv

5
推荐指数
1
解决办法
787
查看次数

OpenCV:如何正确应用morphologyEx操作?

我有关于的内核大小的问题morphologyEx。我有一些验证图片,我想对它们执行相同的操作并获得相同的最终结果。

代码:

image = cv2.imread("Image.jpg")
gray = cv2.cvtColor(image , cv2.COLOR_BGR2GRAY)


ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

k1 = np.ones((3,3))
k2 = np.ones((5,5))
bottom_image = cv2.morphologyEx(thresh1, cv2.MORPH_CLOSE, k1)
bottom_image =  255-bottom_image
bottom_image = remove_boxes(bottom_image , True)


ret,thresh2 = cv2.threshold(bottom_image,127,255,cv2.THRESH_BINARY_INV)
opening = cv2.morphologyEx(thresh2, cv2.MORPH_OPEN, k1)


#closing =  cv2.morphologyEx(opening, cv2.MORPH_CLOSE, k)
# cv2.imshow('opening', opening)

dilate = cv2.morphologyEx(opening, cv2.MORPH_DILATE, k2)
dilate = cv2.bitwise_not(dilate)
# cv2.imshow('dilation', dilate)


bottom_image = cv2.morphologyEx(bottom_image, cv2.MORPH_CLOSE, k1)
Run Code Online (Sandbox Code Playgroud)

完美的结果是

输入:
在此处输入图片说明

输出:
在此处输入图片说明

但是,当我将其应用于具有相同结构输出的其他图像时,就会出现问题。

范例1:

输入: …

python opencv

3
推荐指数
1
解决办法
4856
查看次数

使用轮廓层次结构的python opencv裁剪

我想从下面的图像中删除边框 在此输入图像描述

我到目前为止尝试使用OpenCV来获取边缘代码:

def autocrop(image, threshold=0):
    """Crops any edges below or equal to threshold

    Crops blank image to 1x1.

    Returns cropped image.

    """
    if len(image.shape) == 3:
        flatImage = np.max(image, 2)
    else:
        flatImage = image
    assert len(flatImage.shape) == 2

    rows = np.where(np.max(flatImage, 0) > threshold)[0]
    if rows.size:
        cols = np.where(np.max(flatImage, 1) > threshold)[0]
        image = image[cols[0]: cols[-1] + 1, rows[0]: rows[-1] + 1]
    else:
        image = image[:1, :1]

    return image

no_border = autocrop(new_image)


cv2.imwrite('no_border.png',no_border)
Run Code Online (Sandbox Code Playgroud)

结果是这个图像,接下来如何删除这些框

在此输入图像描述

更新:

我发现该解决方案适用于白色背景,但是当我更改背景颜色边框时,不会删除

在此输入图像描述

编辑

我试过这个图像的解决方案

在此输入图像描述

但结果是这样的

在此输入图像描述

如何实现完全删除边界框.

python opencv

2
推荐指数
2
解决办法
1714
查看次数

OpenCV:文本处理和噪声消除

我想删除包含文本的图像的背景,使其在白色背景上的文本.

图像样本
在此输入图像描述

到目前为止我已经尝试过获取图像的HSV和上下边界,但我找不到可以去除所有背景效果的上下边界

直到现在使用的代码:

import cv2
import numpy as np


# Take each frame
filename = 'img2.png'

img = cv2.imread(filename, 1)

# Convert BGR to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# define range of blue color in HSV
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
# Threshold the HSV image to get only blue colors
image_final = cv2.inRange(hsv, lower_blue, upper_blue)
# Bitwise-AND mask and original image
res = cv2.bitwise_and(img,img, mask= mask)
cv2.imshow('frame',img)
cv2.imwrite('mask.png',image_final)


cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法,或者我必须结合多个下边界和上边界来达到我的目标?

python opencv opencv3.0

1
推荐指数
1
解决办法
1147
查看次数

标签 统计

opencv ×4

python ×4

google-colaboratory ×1

opencv3.0 ×1