Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:黑色边框中的反射图像_Python_Python 3.x_Python 2.7_Image Processing - Fatal编程技术网

Python:黑色边框中的反射图像

Python:黑色边框中的反射图像,python,python-3.x,python-2.7,image-processing,Python,Python 3.x,Python 2.7,Image Processing,我目前正在尝试编写一个python脚本(Python3),它可以在黑色边框上创建图像的反射 首先,我使用以下图片: 我希望它的黑色边框(两个黑色三角形)替换为三角形和图像之间分隔线上图像的部分反射。谢谢你抽出时间 通过在每条线上或靠近每条线的位置采样两个像素,并求解斜率和截距,可以求解每条边界线的方程 一旦你有了这些方程,那么让(x0,y0)成为你想要反射的黑色像素之一(比如在左上角),让我们假设左边界的方程是y=m*x+b(在这里你从沿边界的两个像素解出m和b) 然后你可以: 您可以将(xR

我目前正在尝试编写一个python脚本(Python3),它可以在黑色边框上创建图像的反射

首先,我使用以下图片:


我希望它的黑色边框(两个黑色三角形)替换为三角形和图像之间分隔线上图像的部分反射。谢谢你抽出时间

通过在每条线上或靠近每条线的位置采样两个像素,并求解斜率和截距,可以求解每条边界线的方程

一旦你有了这些方程,那么让
(x0,y0)
成为你想要反射的黑色像素之一(比如在左上角),让我们假设左边界的方程是
y=m*x+b
(在这里你从沿边界的两个像素解出
m
b

然后你可以:

您可以将
(xR,yR)
量化到最接近的像素或其他位置


您还可以尝试使用某种类型的边缘检测器自动检测边缘线,同时检查边缘一侧的所有内容是否为零像素,一旦您自动完成获取边缘像素的任务,您可以从沿反射线的任意两个坐标自动确定反射线。

您希望它水平反射还是沿边的轴反射?一个比另一个难多了。是您自己旋转图像,还是您需要处理已经有此边框的图像?@MarkRansom我希望它沿边缘轴反射。@CrisLuengo我自己旋转图像,以便将其用作示例。我想在有相似边界的图像上使用它,可能更小,但形状相似,太糟糕了。我希望你只想把它用于你自己旋转的图像。我建议您在旋转之前通过镜像来扩展图像(这是一件很容易实现的事情)。回答得很好!考虑到自然图像中RGB值恰好为[0,0,0]的像素非常少,发现边界线应该很简单。
# using Python syntax for example
d = (x0 + (y0 - b) * m) / (1 + m ** 2)
xR = 2 * d - x0
yR = 2 * d * m - y0 + 2 * b