- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用新的 Azure Kinect DK 制作一系列教程,但我偶然发现了一些让我难住的东西。
这是一个具有 MvvM 模式的 WPF 应用程序,它从 Kinect 获取输出,并具有一个组合框,允许用户从各种选项中选择输出类型。
我正在研究的最新选项是使用 Azure 自定义视觉 AI 进行品牌识别。我用多个品牌的软饮料训练了一个简单的模型,它正确地检测到品牌并为我提供了一个边界框,该边界框引用了该位置的原始图像的 %。
我使用以下代码将彩色相机输出为 Span 中的像素:
<BGRA> colourBuffer = capture.Color.GetPixels<BGRA>().Span;
Span<BGRA> outputBuffer = outputImage.GetPixels<BGRA>().Span;
我的目标是对彩色相机输出的像素进行着色,我已经成功地进行了 body 跟踪: Successfully shading pictures
我从自定义视觉 AI 中获得了品牌预测,这些预测以边界框的形式表示为原始图像的百分比。我将它们转换为 Int32Rects,以便更轻松地与彩色相机输出的纵横比 (1920x1080) 一起使用。
我的问题是,当我对像素进行着色时,跨度与我正在着色的像素不对应。整个代码在这里:https://github.com/craiggilchrist/mancavecoding-kinectdk/blob/feature/tutorial-3/src/Part%201%20-%20Connecting/KinectViewModel.cs但特别重要的部分是:
foreach (var prediction in _predictions)
{
// Pixels to colour will start at the top left pixel and finish after the width plus height has been iterated.
var bbX = (int)Math.Round(prediction.BoundingBox.Left * _colourWidth);
var bbX2 = bbX + ((int)Math.Round(prediction.BoundingBox.Width * _colourWidth));
var bbY = (int)Math.Round(prediction.BoundingBox.Top * _colourHeight);
var bbY2 = bbY + ((int)Math.Round(prediction.BoundingBox.Height * _colourHeight));
var region = new Int32Rect(
(int)(capture.Color.WidthPixels * prediction.BoundingBox.Left),
(int)(capture.Color.HeightPixels * prediction.BoundingBox.Top),
(int)(capture.Color.WidthPixels * prediction.BoundingBox.Width),
(int)(capture.Color.HeightPixels * prediction.BoundingBox.Height));
for (int x = region.X; x < region.X + region.Width; x++)
{
for (int y = region.Y; y < region.Y + region.Height; y++)
{
outputBuffer[(x * y)].R = 255;
}
}
}
这会导致以下像素呈现红色: Badly shaded pixels
我不知道如何正确地跨过连续内存并将其连接回我需要着色的矩形。
有人可以帮忙吗?
最佳答案
事实证明,我的 for 循环只是愚蠢的。正确的 for 循环应该是:
for (int y = region.Y; y < region.Y + region.Height; y++)
{
for (int x = region.X; x < region.X + region.Width; x++)
{
var index = (y * _colourWidth) + x;
outputBuffer[index].R = 255;
}
}
关于c# - 使用 Azure Kinect DK 将 In32Rect 坐标转换为 Span<BGRA>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62885398/
Closed. This question needs details or clarity。它当前不接受答案。
所以,我在用 C++ 和 DirectX 11 开发游戏引擎,我注意到人们通常使用 BGRA 而不是 RGBA 作为 SwapChain 格式。人们为什么那样做?为什么是 32 位颜色而不是 256
所以,我在用 C++ 和 DirectX 11 开发游戏引擎,我注意到人们通常使用 BGRA 而不是 RGBA 作为 SwapChain 格式。人们为什么那样做?为什么是 32 位颜色而不是 256
我有一个缓冲区,其中包含一个“原始”BGRA 纹理,每种颜色一个字节。线条顺序相反(纹理颠倒)。 BGRA 缓冲区全是绿色 (0, 255, 0, 255)。 我需要将其转换为 RGBA 并翻转纹理线
我正在阅读 this tutorial关于从 iPhone 相机获取像素数据。 虽然运行和使用此代码没有问题,但我需要获取相机数据的输出(来自 BGRA)并将其转换为 ARGB,以便我可以将其与外部库
下午好! 在DirectX中我是初学者,很多东西我都不知道。 我在视频卡的内存中有一个 RGBA 格式的纹理 (DXGI_FORMAT_R8G8B8A8_UNORM)。这是截获的游戏缓冲区。在将其内容
我有一个 BGRA 数组,需要将其绘制到 Canvas 上。 目前我正在这样做: var aVal = returnedFromChromeWorker; var can = doc.createEl
我的目的是录屏。我正在使用 Windows DXGI API 接收屏幕截图,并使用 libx264 将屏幕截图编码为视频。将 BGRA 图像直接馈送到 libx264 会在输出视频中产生奇怪的颜色。因
有人可以解释以下三个函数之间的区别吗? typedef union { std::uint8_t B, G, R, A; std::uint32_t Colour; } BGRA; 第
我想使用 GPUImage 框架捕获原始像素数据进行操作。我这样捕获数据: CVImageBufferRef cameraFrame = CMSampleBufferGetImageBuffer(i
我将 BGRA 图像转储为以下格式(连续)的二进制文件:[(b, g, r, a), (b, g, r, a), (b, g, r, a ) ...]我知道图像的宽度、高度和 channel 数量(在
我想用iphone的相机拍一张原始图像数据,然后在笔记本电脑上用matlab或opencv进行后处理。所以我需要把这个原始图像数据从 iphone 带到笔记本电脑上。 目前,我使用 AVFoudnat
所以,我对刚刚运行的快速测试感到非常困惑。我正在用 C# 做一些图像处理。 Get/SetPixel() 已被证明太慢,所以我使用 LockBits 来获取原始数据。 但是,我似乎遇到了一个我无法弄清
在跟进之前关于将 RGB 转换为 RGBA 以及 ARGB 转换为 BGR 的一些问题后,我想使用 SSE 加快 RGB 到 BGRA 的转换.假设一台 32 位机器,并且想使用 intrinsics
在跟进之前关于将 RGB 转换为 RGBA 以及 ARGB 转换为 BGR 的一些问题后,我想使用 SSE 加快 RGB 到 BGRA 的转换.假设一台 32 位机器,并且想使用 intrinsics
我目前有一个问题,即库创建了 BGRA 像素格式的 DX11 纹理。 但是显示库只能正确显示RGBA。 (这意味着颜色在渲染图像中交换) 环顾四周后,我发现了一个简单的 for 循环来解决问题,但性能
我正在使用原始相机帧在 opengl 中进行一些视频处理。我告诉相机给我 BGRA,因为我听说这在 iPhone 上性能更高。现在,我知道原生相机格式是 YUV,但为了处理我正在做红绿蓝。 整个 BG
我正在使用 Metal 开发一个 iOS 应用程序,并且可以选择使用 RGBA 或 BGRA 作为纹理格式。该应用程序将是: 渲染成纹理 在屏幕上绘制纹理 从纹理生成UIImages 从UIImage
我有一个包含 BGRA 栅格数据的 byte[] 数组(例如,第一个字节 = 蓝色分量,第二个 = 绿色,第五个 = 下一个像素,蓝色),并且想使用它。 具体来说,是否有一个 Java 类已经被设计来
我正在开展一个项目,我使用 AVCaptureSession 捕获用户的视频输入。问题是我需要 BGRA 格式的输出以使用 OpenCV 渲染它,但随后我需要将其更改回默认的 420f 格式以将其显示
我是一名优秀的程序员,十分优秀!