小编Chr*_*itz的帖子

如何在Python中将CSV表转换为COCO格式?

我有一个包含以下列的 CSV 表:

column_names = ['image_id', 'xmin', 'ymin', 'width', 'height', 'xmax','ymax']
Run Code Online (Sandbox Code Playgroud)

其中 xmin、ymin、xmax 和 ymax 表示包围某个对象的边界框;宽度和高度,图像尺寸;image_id,文件名(.JPG 文件)。由于我想做对象检测,所以我需要将此表转换为COCO格式。令人惊讶的是,我在互联网上找不到这个问题的任何答案。

python csv

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

OpenCV Python:16 位图像的 LUT?

我一直在尝试学习 OpenCV python 上的一些图像处理。我有一个 16 位图像,我想对此 16 位图像应用 LUT 转换,而不将其减少到 8 位。从文档中,我了解到 OpenCV 中的 LUT 函数仅适用于 8 位图像。有谁知道对 16 位图像使用此函数的有效方法吗?

我对 8 位图像使用了 LUT 转换。它们工作正常,但对于 16 位图像,会出现以下错误:error: (-215:Assertion failed) (lutcn == cn || lutcn == 1) && \_lut.total() == 256 && \_lut.isContinuous() && (depth == CV_8U || depth == CV_8S) in function 'cv::LUT'

后来我发现这是因为LUT功能只适用于8位图像。

python opencv image-processing lookup-tables

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

如何基于透明python合并两个图像

我需要加入两个图像,其中基本图像具有透明背景,我已经尝试使用

图片01

在此输入图像描述

图像和照片我需要将她放在空白处的第二个图像中

在此输入图像描述

预期结果和这个

在此输入图像描述

import numpy as np
import cv2
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

dim = (425, 425)

apple = mpimg.imread('image.png')
apple = cv2.resize(apple, dim)

banana = mpimg.imread('image2.png')
banana = cv2.resize(banana, dim)


_ = plt.imshow(apple)
_ = plt.show()

_ = plt.imshow(banana)
_ = plt.show()

list_images = [apple, banana]

def blend(list_images): # Blend images equally.

    equal_fraction = 1.0 / (len(list_images))

    output = np.zeros_like(list_images[0])

    for img in list_images:
        output = output + img * equal_fraction

    output = output.astype(np.uint8) …
Run Code Online (Sandbox Code Playgroud)

python opencv

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

使用 Python 将 3D Luts .cube 文件应用到图像中

我正在寻找一种方法来做到这一点,我看过 OpenCV 但至少我只能找到用它应用1D Luts 文件的方法(256 长)。有谁知道如何使用 python 将3D Luts (64x64x64) 应用于图像?谢谢。

python image-processing lookup-tables

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

如何在不损失分辨率的情况下将 RAW 图像文件格式读入 OpenCV?

我正在尝试将 Nikon '.NEF' 文件导入 OpenCV。“.NEF”是尼康相机拍摄的照片的 RAW 文件格式的文件扩展名。当我在Mac上以预览方式打开该文件时,我看到分辨率为6000 x 4000,并且图片非常清晰。然而,当我将其导入 OpenCV 时,我只能看到 120 x 160(RGB 通道为 3)个数据点,这会导致分辨率的大幅损失。

我的理解是,NumPy 数组中有 120 x 160 个像素,存储有关 OpenCV 像素的信息。我尝试使用 -1 作为 IMREAD_UNCHANGED 标志,但许多像素被遗漏,图像质量受到很大影响。

供您参考,这是我的代码:

# first Jupyter block
img = cv2.imread('DSC_1051.NEF', -1)
img.shape
Run Code Online (Sandbox Code Playgroud)

执行img.shape回报 (120, 160, 3)。

# second Jupyter block
cv2.namedWindow("Resize", cv2.WINDOW_NORMAL)
cv2.resizeWindow("Resize", 1000, 700)
  
# Displaying the image
cv2.imshow("Resize", img)

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

问题摘要:

  • 原始图像形状为 (6000, 4000)
  • 打开 CV 导入 (120, 160),导致分辨率损失较大
  • 使用 IMREAD_UNCHANGED 标志不会导致 OpenCV 导入图像中的所有像素,从而导致执行时图像质量下降cv2.imshow()

我的问题:如何使用 …

python opencv image image-processing rawimage

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

当未找到人脸时,如何处理 deepFace.analyze() 中的错误?

img=cv2.imread(face.jpg)
predictions= DeepFace.analyze(img)
Run Code Online (Sandbox Code Playgroud)

Error: Face could not be detected. Please confirm that the picture is a face photo or consider to set enforce_detection param to False.

设置enforce_detectionFalse会导致即使图像中没有面部,它也会读取情绪

我们如何处理这个错误,让它告诉我们没有人脸?

python error-handling face-detection deepface

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

cv2.error:OpenCV(4.5.2)resize.cpp:4051:错误:(-215:断言失败)!函数“cv :: resize”中的ssize.empty()

运行这行代码时我收到此错误:

pixels.append( cv2.resize(cv2.imread(raw_folder  + folder +"/" + file),dsize=(128,128)))**
Run Code Online (Sandbox Code Playgroud)

错误:

cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-vi271kac\opencv\modules\imgproc\src\resize.cpp:4051: 
error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision

0
推荐指数
1
解决办法
7万
查看次数

类型错误:裁剪从 VideoCapture 获取的 OpenCV 图像时,元组索引必须是整数或切片,而不是元组

我正在尝试在运行 Raspbian GNU/Linux 11(牛眼)的 Raspberry Pi 3B+ 上使用 OpenCV 并使用以下代码裁剪相机拍摄的图像,我得到以下输出:

Traceback (most recent call last):
File "/home/pi/Desktop/test-code-elias/camquali.py", line 141, in <module>
right_wall = img[1:1944, 1:1000]
TypeError: tuple indices must be integers or slices, not tuple
Run Code Online (Sandbox Code Playgroud)

我的代码:

img = cam.read()
right_wall = img[0:1944, 0:1000]
Run Code Online (Sandbox Code Playgroud)

python opencv numpy

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

CV2 仅在遮罩区域绘制椭圆

我试图在足球场上的球员下方画一个圆圈,类似于:

在此输入图像描述

如果我只是绕着玩家的脚转一圈,看起来会很糟糕:

在此输入图像描述

我试图仅在场的绿色部分上绘制圆圈(以使其更具 3D 效果)。

首先,我使用以下代码仅掩盖了字段上的绿色部分:

def mask(img):
    ## convert to hsv
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    ## mask of green (36,25,25) ~ (86, 255,255)
    lower = (36, 25, 25)
    upper = (86, 255, 255)
    mask = cv2.inRange(hsv, lower, upper)
    ## slice the green
    imask = mask == 0
    green = np.zeros_like(img, np.uint8)
    green[imask] = img[imask]
    img = green
    return img
Run Code Online (Sandbox Code Playgroud)

这给出了以下结果:

在此输入图像描述

如何仅在绿色(遮罩后 - 黑色)部分绘制椭圆?

PS这是完整的代码:

import cv2
import numpy as np


def mask(img):
    ## convert to hsv
    hsv = cv2.cvtColor(img, …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy image-processing

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

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

使用 Python 查找图像中两点之间的物理距离

我有图像的两个坐标 (x, y)

Point N: (x = 2314, y = 751), Width = 2880, Hight = 2304
Point S: (x = 1533, y = 670), Width = 2880, Hight = 2304
Run Code Online (Sandbox Code Playgroud)

当我在 matplotlib 中绘制它们时,它们看起来像这样。(尽管我也在这里绘制了其他一些点。) -

(尽管我也在这里绘制了其他一些点。) -

现在,我想计算S and N 我知道的 X 射线板和 X 射线机器之间的距离是 180 厘米。

我已经尝试过使用该math功能。

distance = math.sqrt( ((N[0]-S[0])**2)+((N[1]-S[1])**2) )
print(distance)
Run Code Online (Sandbox Code Playgroud)

这给了我这样的结果 755.2747844327918

但我需要知道距离(以米为单位)。我怎样才能以某种方式做到这一点?

python math geometry image-processing computer-vision

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