我有一个包含以下列的 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格式。令人惊讶的是,我在互联网上找不到这个问题的任何答案。
我一直在尝试学习 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位图像。
我需要加入两个图像,其中基本图像具有透明背景,我已经尝试使用
图片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) 我正在寻找一种方法来做到这一点,我看过 OpenCV 但至少我只能找到用它应用1D Luts 文件的方法(256 长)。有谁知道如何使用 python 将3D Luts (64x64x64) 应用于图像?谢谢。
我正在尝试将 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)
问题摘要:
cv2.imshow()。我的问题:如何使用 …
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_detection为False会导致即使图像中没有面部,它也会读取情绪
我们如何处理这个错误,让它告诉我们没有人脸?
运行这行代码时我收到此错误:
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) 我正在尝试在运行 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) 我试图在足球场上的球员下方画一个圆圈,类似于:
如果我只是绕着玩家的脚转一圈,看起来会很糟糕:
我试图仅在场的绿色部分上绘制圆圈(以使其更具 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) 我有图像的两个坐标 (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
但我需要知道距离(以米为单位)。我怎样才能以某种方式做到这一点?