谁能帮助我使用opencv Python将RGB色彩空间图像转换为YUV色彩空间图像和YCbCr色彩空间图像?
python opencv image-processing image-preprocessing opencv-python
使用脚本将dxf转换为png时,我需要绘制仅具有三个参数的圆弧,即圆弧的起点,圆弧的终点和凸出距离。
我已经检查了OpenCV和PIL,它们都需要起点和终点角度来绘制此弧。我可以使用某些几何来找出这些角度,但想知道是否还有其他解决方案我错过了。
我在图像中有6个点的坐标
(170.01954650878906, 216.98866271972656)
(201.3812255859375, 109.42137145996094)
(115.70114135742188, 210.4272918701172)
(45.42426300048828, 97.89037322998047)
(167.0367889404297, 208.9329833984375)
(70.13690185546875, 140.90538024902344)
Run Code Online (Sandbox Code Playgroud)
我有一点作为中心[89.2458, 121.0896].我试图用4个旋转度(从0,90,-90,180)和6个比例因子(0.5,0.75,1,1.10,1.25,1.35,1.5)重新计算python中点的位置.
我的问题是如何旋转和缩放相对于中心点的上述点并获得这6个点的新坐标?
非常感谢您的帮助.
我想这不是困难但我想知道是否有任何功能或任何最佳方式.
考虑到在图像处理之后我有一个矩阵图像,其中0到处都是1,在轮廓处有1.
现在我想沿着该轮廓线找到xy
重要的是例如 [x(2)y(2)] 应该是[x(1)y(1)]的下一个像素
我用过这个:
[CH] =轮廓(图像,1)
x = c(1,:) y = c(2,:)
但结果不是很好,它给出了一些非常糟糕的噪点(并且出于某种原因它看起来是镜像的)
我正在使用MATLAB来计算图像的幅度和相位.我使用以下公式来获得相位角:
Phase_Angle = tan^-1(Y_Magnitude/X_Magnitude)
Run Code Online (Sandbox Code Playgroud)
因此,如果X_Magnitude矩阵包含零值将导致NaN 没有人会喜欢那样..
我正在研究一个涉及检测人体的机器人项目,我正在使用张量流和预定义的数据集来创建训练模型.由于我是机器学习的新手,我无法正确获取分类器的输出.我只需要人物检测,并希望避免检测球,笔记本电脑或其他物体.现在我的网络摄像头检测到所有的物体,如球,蝙蝠,笔记本电脑,电视等.我需要的输出只有得分为80%及以上的人.
我用来创建模型的代码是
import numpy as np
import os
import six.moves.urllib as urllib
import sys
import tarfile
import tensorflow as tf
import zipfile
from collections import defaultdict
from io import StringIO
from matplotlib import pyplot as plt
from PIL import Image
from utils import label_map_util
from utils import visualization_utils as vis_util
MODEL_NAME = 'ssd_mobilenet_v1_coco_11_06_2017'
MODEL_FILE = MODEL_NAME + '.tar.gz'
DOWNLOAD_BASE = 'http://download.tensorflow.org/models/object_detection/'
PATH_TO_CKPT = MODEL_NAME + '/frozen_inference_graph.pb'
PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt')
NUM_CLASSES = 90
if not os.path.exists(MODEL_NAME + '/frozen_inference_graph.pb'):
print ('Downloading …Run Code Online (Sandbox Code Playgroud) 我使用MATLAB的内置"imfreehand"来定义二进制掩码.边界内的每个像素都设置为1,否则设置为零:
h = imfreehand(handles.fig);
wait(h);
mask = h.creatMask();
Run Code Online (Sandbox Code Playgroud)
然后,我想用4个像素扩大掩模,最后添加一段使边缘更平滑的代码,即掩模的边缘平滑地从1到0; 像汉明或汉宁的窗户.我怎样才能做到这一点?
我有少量要查询的颜色数据。它采用RGB数据列表的形式。
[(255, 255, 255), (124, 144, 231), ...]
该图像使用受限的调色板,我想通过沿色轮进行绘制来查看这些颜色是如何“分布”的。作为替代方案,我尝试了各个通道的直方图,但这并没有给我带来我感兴趣的见解。
我在Google上搜索并了解到,HSL颜色可以更准确地映射到色轮。但是,转换为HSL后,我仍然感到困惑。颜色仍然由3个数据组成:色相,饱和度和亮度。您如何将3个数据映射到2d平面上?
我在这里阅读了有关极坐标的信息:https : //www.mathsisfun.com/polar-cartesian-coordinates.html。我尝试通过将HSL数据视为极坐标来忽略亮度和绘图(色相=角度,饱和度=半径长度(按某些比例缩放))
def polar2cartesian(hsl):
color_circle_radius = 100
radius = hsl.saturation * color_circle_radius
x = radius * math.cos(math.radians(hsl.hue))
y = radius * math.sin(math.radians(hsl.hue))
return x, y
...
for hsl in colors:
x, y = polar2cartesian(hsl)
im.point(x, y, hsl.to_rgb())
Run Code Online (Sandbox Code Playgroud)
这不是正确的结果。由于它在多个地方都显示相同的红色色调,例如以下示例:
从RGB转换到色轮上某个位置的正确方法是什么?
我正在尝试使用tesseract-OCR从图像中打印文本。但我收到上述错误。我已使用pip install pytesseract在anaconda提示符中使用https://github.com/UB-Mannheim/tesseract/wiki和pytesseract 安装了tesseract OCR,但它不起作用。如果有人遇到过类似问题,请提供帮助。
(基本)C:\ Users \ 500066016> pip install pytesseract收集pytesseract下载https://files.pythonhosted.org/packages/13/56/befaafbabb36c03e4fdbb3fea854e0aea294039308a93daf6876bf7a8d6b/pytesseractz 0.2.4(?169)。 ?????????????????????????????????? | 174kB 288kB / s已满足要求:存放在c:\ users \ 500066016 \ appdata \ local \ continuum \ anaconda3 \ lib \ site-packages中(来自pytesseract)(5.1.0)组装收集包的轮子:pytesseract正在运行setup.py pytesseract的bdist_wheel ...完成存储在目录中:C:\ Users \ 500066016 \ AppData \ Local \ pip \ Cache \ wheels \ a8 \ 0c \ 00 \ 32e4957a46128bea34fda60b8b01a8755986415cbab3ed8e38成功构建pytesseract
下面是代码:
import pytesseract
import cv2
import numpy as np
def get_string(img_path):
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = …Run Code Online (Sandbox Code Playgroud) 我对图像处理知识不多。我正在尝试实现一个ConvNet。我下载了一些图像作为数据集,并使其高度和宽度相等。然后我尝试通过以下代码将它们加载到np.array中:
train_list = glob.glob('A:\Code\Machine
Learning\CNN\ConvolutionalNN1\TrainImg\*.jpg')
X_train_orig = np.array([np.array(Image.open(file)) for file in train_list])
Run Code Online (Sandbox Code Playgroud)
但这给了我无法广播(420,310)到(420,310,3)的错误。然后我打印了数组的形状,其中一些是(420,310,3),其他是(410,320,4)。为什么会这样呢?以及如何更改它以使其适合数组?
image-processing ×10
python ×6
matlab ×3
opencv ×3
colors ×1
contour ×1
cv2 ×1
draw ×1
dxf ×1
python-3.x ×1
tensorflow ×1