2
import cv
...
#Let boundaryPixel be the 24-bit representation of the color of the rectangle 
#(e.g., RED in this case)`
boundaryPixel = cv.RGB(255, 0, 0)`
print("valueIs: " + str(boundaryPixel))`
#(0.0, 0.0, 255.0, 0.0), 4 channels reversed?`
...

鉴于上面的片段,我想知道为什么 OpenCV 会以这种方式返回值(即,反转并使用 4 个通道而不是 3 个)?

我总体上想要做的是我正在尝试扫描图像,搜索 RGB 值为 (255, 0, 0) 的像素。我最初的尝试是定义在这种情况下边界像素是什么,然后让我的循环搜索这些像素并将它们存储在某个地方。做了一些研究,我发现第 4 个值是 Alpha 通道,对吗?所以,我目前有类似(RED,GREEN,BLUE,ALPHA)的东西,但我不确定是否需要将 4 个通道转换为 3 个通道来实现我想要的:这是比较某个位置的 currentPixel( X0, Y0) 并​​且如果它具有相同的值 (255, 0, 0),我想保留它们以进行进一步的图像处理。

目前我也在使用 PIL 的getdata()方法来获取像素的值,因此我想定义边界像素是从什么开始的。我会在哪里遇到一些问题,我的方法是否经过深思熟虑?我不想转换整个图像。我只是希望能够将该像素与我已经定义的像素进行比较。

谢谢,如果你们需要更多信息或不清楚的地方,请告诉我!

4

0 回答 0