小编Han*_*rse的帖子

Tensorflow Contrib 模块将不会包含在 TensorFlow 2.0 中

我正在 Windows 10 上使用 Python 以及 TensorFlow 2.0 和 Python 3.6、Anaconda 3 训练我自己的模型。当我运行命令时:

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config
Run Code Online (Sandbox Code Playgroud)

训练我的图像时,它表明 Tensorflow Contrib 模块不会包含在 TensorFlow 2.0 中。我现在应该用 TensorFlow 做什么?我需要升级或降级 TensorFlow 吗?我应该运行哪些 Anaconda Promt 命令?

python tensorflow

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

在绘制图像之前打印文本(matplotlib/imageio)

我对 Python 还很陌生(对使用 MatPlotLib 和 imageio 也很陌生),我想知道是否有可能先绘制图像,然后打印一些文本。
我的意思是:当你给予:

print('Test')
plt.imshow(imageio.imread(<location>))
Run Code Online (Sandbox Code Playgroud)

它首先打印文本,然后打印图像,但是当您给出:

plt.imshow(imageio.imread(<location>))
print('Test')
Run Code Online (Sandbox Code Playgroud)

它仍然首先打印文本。
有针对这个的解决方法吗?如果没有,是否有其他方法可以做到这一点?

python matplotlib

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

如何找到棋盘图像中的空格?

我目前正在编写一个图像识别脚本,该脚本可以为我的国际象棋项目从棋盘图像中生成二维数组。然而,我发现很难找到哪些方块是空的:

输入1

到目前为止,我在应用高斯模糊后对图像使用了 Canny 边缘检测,得到了以下结果:

输入2

我使用的代码是:

sigma = 0.33
v = np.median(img) 
img = cv2.GaussianBlur(img, (7, 7), 2) # we use gaussian blur on the image to make it clear.
lower = int(max(0, (1.0 - sigma) * v)) # we find the lower threshold.
upper = int(min(255, (1.0 + sigma) * v)) # we find the higher threshold.
img_edge = cv2.Canny(img, 50, 50) # we use the canny function to edge canny the image.
cv2.imshow('question', img_edge) # we show the image. …
Run Code Online (Sandbox Code Playgroud)

python opencv image

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

PIL Image.open 和 cv2.imdecode 的区别

我试图了解这两种使用 PIL 与 OpenCV 从字节加载图像的方法之间的区别。

def bytes_to_ndarray(bytes):
    bytes_io = bytearray(bytes)
    img = Image.open(BytesIO(bytes_io))
    return np.array(img)
Run Code Online (Sandbox Code Playgroud)

img = cv2.imdecode(bytes, cv2.IMREAD_ANYCOLOR)
Run Code Online (Sandbox Code Playgroud)

问题是他们似乎对使用 OpenCV 创建的图像给出了不同的答案。如果imagendarray,那么对于

bytes = cv2.imencode('.jpg', image)
Run Code Online (Sandbox Code Playgroud)

这两种方式将给出不同的输出,例如 skimage.data.astronaut()

PIL 将给出:

在此处输入图片说明

而 OpenCV 将返回正确的图像:

在此处输入图片说明

python opencv image-processing python-imaging-library

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

PIL.ImageEnhance 的颜色、亮度和对比度增强功能使用的公式是什么?

PIL.ImageEnhance使用亮度、颜色和对比度增强功能时,图像分别如何变换?例如,每个变换的像素值变换的数学公式是什么?

image image-processing python-imaging-library python-3.x

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

掩模内的 Otsu 阈值

我正在使用 Python 并尝试对图像进行 Otsu 阈值处理,但仅限于掩模内部(是的,我有一个图像和一个掩模图像)。这意味着用于计算 Otsu 阈值的直方图中将包含图像上较少的像素。

我目前正在使用cv2.threshold没有掩模图像的功能,并且不知道如何完成此类工作。

ret, OtsuMat = cv2.threshold(GaborMat, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
Run Code Online (Sandbox Code Playgroud)

由于该函数还包含掩模外部的像素,因此我认为它会给出不太准确的阈值。

这是图像及其蒙版的示例:

https://drive.google.com/drive/folders/1p8JMhncJs19oOWO9RdkWuEADVGqE-gzQ?usp=sharing

希望有一个 OpenCV 或其他库函数可以轻松地完成此操作(并且还具有快速计算),但任何形式的帮助将不胜感激。

python opencv numpy image-processing masking

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

如何在OpenCV中进行卷积

我试图使用filter2D方法在OpenCV中找到卷积,但结果不正确

import cv2 as cv
import scipy.signal as sig
import numpy as np
b=np.asarray([[1,2,0,1,2],
              [2,3,1,1,2],
              [1,4,2,2,0],
              [3,2,3,3,0],
              [1,0,0,2,1]
              ],dtype=np.uint8)

w=np.asarray([[1,1,1],
              [1,1,2],
              [2,1,1]],dtype=np.uint8)
w_r=np.asarray([[1,1,1],
                [2,1,1],
                [1,1,1]
                ],dtype=np.uint8)
print(sig.convolve2d(b,w,mode="same"))
kernel_r=np.asarray([[1,1,1],[1,1,2],[2,1,1]])
print("-------")
print(cv.filter2D(b,-1,w_r))
Run Code Online (Sandbox Code Playgroud)

第一个输出是由 scipy.signal.convolve2D 生成的,这是正确的。第二个输出是由 OpenCV filter2D 生成的,这是不正确的。我怎样才能得到正确的结果。

[[ 8 10 10  7  7]
 [15 18 20 14  9]
 [18 23 26 18 10]
 [15 21 22 16 11]
 [ 8 13 13  9  8]]
-------
[[23 16 15 11 13]
 [25 18 19 12 13]
 [28 22 25 16 16]
 [19 …
Run Code Online (Sandbox Code Playgroud)

python opencv convolution

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

检测噪声帧

我有一个 FPV(第一人称视角)接收器,显示从安装在无人机上的 FPV 摄像机接收的帧。当发射器工作时,接收器显示摄像机视图。否则,如果连接丢失或发射器不工作,它会显示噪声帧。

噪声帧具有随机模式(有时具有更多的白色像素,有时具有更多的黑色像素)。我想以一种有效的方式在 Python 中使用 OpenCV 检测那些噪声帧。我知道 OpenCV 有一个方法叫做cv2.fastNlMeansDenoisingColored(). 但在这种情况下,我想检测每帧中的噪声帧而不是噪声。

附上噪声帧示例:

在此处输入图片说明

另一个噪声帧示例:

在此处输入图片说明

一个有效的框架(可以是任何东西):

在此处输入图片说明

python opencv image-processing noise

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

如何标记和测量斑点的大小?

我正在用 Python 学习图像分析,我只是一个初学者。我能够编写一个代码(我在下面分享它)来检测这个纳米粒子图像中的斑点(纳米粒子):

纳米粒子图像

我可以检测到有 10 个纳米粒子使用cv2.connectedComponents,但现在我需要:

  1. 用数字标记每个纳米粒子以生成最终图像。

  2. 计算组成每个纳米粒子的像素数,以便我可以确定它们的大小。

我试图研究,但找不到任何适合我的东西。有愿意帮助我的人吗?如果你能提出一个代码就太好了,如果你也能解释一下,那就太好了!

import numpy as np
    import cv2
    from matplotlib import pyplot as plt
    img = cv2.imread('Izzie -  - 0002.tif')

    #show figure using matplotlib
    plt.figure(1)
    plt.subplot(2, 2, 1) # Figure 1 has subplots 2 raws, 2 columns, and this is plot 1
    plt.gca().set_title('Original')
    plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # , cmap='gray'

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    plt.figure(1)
    plt.subplot(2, 2, 2) # Figure 1 has subplots 2 raw, 2 columns, and this is plot 2
    plt.gca().set_title('Gray')
    plt.imshow(cv2.cvtColor(gray, …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

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

如何使用 imageio 调整图像大小?

考虑img类型为 的图像imageio.core.util.Array

的形状img(256, 256, 3)。我想将其调整为(128, 128, 3).

我至少尝试了以下三个:

img.resize(img_res, pilmode="RGB")
Run Code Online (Sandbox Code Playgroud)
img.resize(img_res)
Run Code Online (Sandbox Code Playgroud)
img = cv2.resize(img, self.img_res)
Run Code Online (Sandbox Code Playgroud)

在这里img_res = (128, 128)

他们没有一个工作得很好。如何将我的图像调整到所需的大小?

image python-imaging-library python-imageio numpy-ndarray

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