图像定位OpenCV

2024-10-01 02:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能叫“兴趣区”,我不太确定。我很想解释,但我更愿意做的是。在

我有一张照片,我需要与网格对齐。在

https://snag.gy/YaAWdg.jpg

首先,显示“here”的小文本必须是屏幕顶部的151px。在

下一步;从“这里”到下巴8号位置必须是631px

最后,在鼻子的第28行画中间画一条直线。在

如果我不明白,请告诉我详细说明。在

我有以下想法(这是伪代码)

这是简单的循环,直到满足要求的调整功能,很像蛮力强迫,但这是我能想到的。。在

也就是说。。在

while (top.x,y = 151,0)
img.top-=1  ## this puts the image one pixel above until reaching the desired positioning
while (top.x,y & eight.x,y != 631)
resize += 1 # resize by 1 pixel until the height is reached
## center the nose
image.position = nose.

Tags: thehttpsimage网格top照片nosegy
2条回答

你可以用一个OpenCV来简化你的工作。(https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection

否则,查看ROI(感兴趣的区域)来提取一个区域并在其上应用您的算法(调整大小或裁剪)

考虑切换操作的顺序以避免迭代的需要。一点数学知识和一个视角的改变可以做到:

1.)Resize从“这里”到下巴的距离是631px。在

2.)使用region of interest裁剪图像,使“here”从屏幕顶部起为151px。在

3.)画出你的line。在

编辑:

假设您定义了所有适当的约束,affine transform in OpenCV可以将图像变形为适当的填充。在

如果你只需要一个简单的刻度。。。首先使用this计算点之间的距离。在

Point2f a(10,10);
Point2f b(100,100);

float euclideanDist(Point& p, Point& q) {
    Point diff = p - q;
    return cv::sqrt(diff.x*diff.x + diff.y*diff.y);
}

然后创建一个比例因子来调整图像大小

^{pr2}$

使用scaleFactor的两个实例将在X&Y中创建统一的缩放比例。使用两个不同的比例因子将独立缩放X和Y。在

相关问题 更多 >