gpt4 book ai didi

image - 如何从图像中提取图层(jpg,png等)

转载 作者:行者123 更新时间:2023-12-04 14:31:27 26 4
gpt4 key购买 nike

给定一个图像,例如 CakePHP Logo ,如何将这个图像转换回带有图层的 PSD。作为人类,我可以很容易地弄清楚如何将其转换回具有图层的 PSD。我可以看出背景是带有星形边缘的圆形。所以圆形星形部分在后面,蛋糕图像在上面,CakePHP 字样在这两个图像之上。

我可以使用 Photoshop/Gimp 工具将这些图像分成三个图像并填充中间的区域。然后我有三层。

enter image description here

作为人类,很容易计算出大多数 Logo 和图像的分层,并且许多图像具有多个层次,CakePHP Logo 只是一个示例。现实世界中的图像也有层次感,在草的背景上可能会有树的层次。我需要一种从图像转换回分层表示的通用方法,理想情况下是一种软件解决方案。

在没有程序解决方案的情况下,是否有任何论文或研究解决了这个问题或与这个问题相关?我最感兴趣的是将人类构建的图像(例如 Logo 或网站标题)转换回分层表示。

我想指出这样做的一些好处,如果您可以自动将此图像转换为分层表示,那么修改图像会更容易。例如,也许你想让蛋糕变小,如果计算机已经在红色背景上分层了蛋糕,你可以缩放蛋糕层。这允许在还没有图层信息的网站上对图像进行图层调整。

最佳答案

如前所述,这是一项不平凡的任务。最终,它可能是最
简单地表述为:给定一个由以下组成的图像(或场景,如果是真实照片)
像素 N,如何将它们分配给 M 层?

对于分割,一切都与您可以承受的先验知识有关
关于像素和像素组的哪些属性给出“提示”(和
我建议使用这个词!)关于它们所属的层。

甚至考虑仅使用图像中的颜色的最简单情况。我可以
生成这 5 个“层”(对于色调值 0、24、90、117 和 118):

1
2
3
4
5

使用此代码(在 python/opencv 中)

import cv 

# get orginal image
orig = cv.LoadImage('cakephp.png')

# show original
cv.ShowImage("orig", orig)

# convert to hsv and get just hue
hsv = cv.CreateImage(cv.GetSize(orig), 8, 3)
hue = cv.CreateImage(cv.GetSize(orig), 8, 1)
sat = cv.CreateImage(cv.GetSize(orig), 8, 1)
val = cv.CreateImage(cv.GetSize(orig), 8, 1)
cv.CvtColor(orig, hsv, cv.CV_RGB2HSV)
cv.Split(hsv,hue,sat,val,None)
#cv.ShowImage("hue", hue)

# loop to find how many different hues are present...
query = cv.CreateImage(cv.GetSize(orig), 8, 1)
result = cv.CreateImage(cv.GetSize(orig), 8, 1)
for i in range(0,255):
cv.Set(query,i)
cv.Cmp(query,hue,result,cv.CV_CMP_EQ)
# if a number of pixels are equal - show where they are
if (cv.CountNonZero(result)>1000): # <-what is signficant?
cv.ShowImage(str(i),result)
cv.SaveImage(str(i)+".png",result)
cv.WaitKey(-1)

但是,即使在这里,我们也不得不用
属于掩码的像素数(在某种程度上我们可能会错过一些
颜色)。我们可以开始聚集相似的颜色——但是在什么时候
集群的密度是否变得重要?如果它不仅仅是纯色,
但是有纹理,我们怎么能描述这个呢?或者,如何推断
一层是另一层的一部分,还是在它前面?或者,最终,一些
这些层似乎是我们人类所说的“字母”,因此可能应该是
所有相关...

计算机视觉中的许多分割研究通常都试图采取
这个问题并在可以编码和应用它的框架内改进它
先验知识有效...

关于image - 如何从图像中提取图层(jpg,png等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com