OpenCV4Android示例应用程序-此代码段的作用是什么?
在色块检测示例应用程序中,从第129行到第133行发生了什么 某些上下文: 应用程序中的相机视图如下所示:(注意,在相机视图中,相机边框周围有一个黑色边框) () 从第114行到第128行,发生了以下情况OpenCV4Android示例应用程序-此代码段的作用是什么?,opencv,opencv3.0,opencv4android,Opencv,Opencv3.0,Opencv4android,在色块检测示例应用程序中,从第129行到第133行发生了什么 某些上下文: 应用程序中的相机视图如下所示:(注意,在相机视图中,相机边框周围有一个黑色边框) () 从第114行到第128行,发生了以下情况 int cols=mRgba.cols()cols()给出矩阵中的列数。此处的矩阵是表示正在显示的实时帧流(而不是整个摄影机视图)中的帧的矩阵,即,它表示正在显示实时流的摄影机视图部分,不包括摄影机视图的黑色边框 int rows=mRgba.rows()rows()给出相机帧中的行数,不包
int cols=mRgba.cols()
cols()
给出矩阵中的列数。此处的矩阵是表示正在显示的实时帧流(而不是整个摄影机视图)中的帧的矩阵,即,它表示正在显示实时流的摄影机视图部分,不包括摄影机视图的黑色边框int rows=mRgba.rows()
rows()
给出相机帧中的行数,不包括相机视图的黑色边框intxoffset=(mOpenCvCameraView.getWidth()-cols)/2;int yOffset=(mOpenCvCameraView.getHeight()-rows)/2
mOpenCvCameraView.getWidth()
给出整个相机视图中的行数,即相机帧加上围绕帧的相机视图的黑色边框(mOpenCvCameraView.getWidth()-cols)
给出相机视图的左右黑边框宽度之和(mOpenCvCameraView.getWidth()-cols)/2
或xOffset
给出一侧的黑色边框宽度,即相机视图的右侧或左侧的黑色边框。同样适用于yOffset
intx=(int)event.getX()-xOffset;int y=(int)event.getY()-yOffset
getX()
为第一个指针索引返回此事件的X坐标。因此getX()
给出了触摸区域与相机视图最左侧的距离,其中包括左侧的黑色边框。因此event.getX()-xOffset
或int x
是被触摸区域与相机“帧”(不包括相机视图的黑色边框)左侧的距离。同样适用于int y
然后是我不知道的台词。我想你是在问这些台词:
touchedRect.x = (x>4) ? x-4 : 0;
touchedRect.y = (y>4) ? y-4 : 0;
touchedRect.width = (x+4 < cols) ? x + 4 - touchedRect.x : cols - touchedRect.x;
touchedRect.height = (y+4 < rows) ? y + 4 - touchedRect.y : rows - touchedRect.y;
因此,对于第129行,如果x>4
,则将touchedRect.x
设置为x-4
,否则0
第130行,如果y>4
,则将touchedRect.y
设置为y-4
,否则0
第131行,touchedRect.width
变为x+4-touchedRect.x
如果x+4
,否则touchedRect.width
变为cols-touchedRect.x
第132行,
touchedRect.height
变为y+4-touchedRect.y
如果y+4
,否则变为rows-touchedRect.y
我假设您正在询问这些行:
touchedRect.x = (x>4) ? x-4 : 0;
touchedRect.y = (y>4) ? y-4 : 0;
touchedRect.width = (x+4 < cols) ? x + 4 - touchedRect.x : cols - touchedRect.x;
touchedRect.height = (y+4 < rows) ? y + 4 - touchedRect.y : rows - touchedRect.y;
因此,对于第129行,如果x>4
,则将touchedRect.x
设置为x-4
,否则0
第130行,如果y>4
,则将touchedRect.y
设置为y-4
,否则0
第131行,touchedRect.width
变为x+4-touchedRect.x
如果x+4
,否则touchedRect.width
变为cols-touchedRect.x
第132行,touchedRect.height
变为y+4-touchedRect.y
如果y+4
,否则变为rows-touchedRect.y