给定一个图像组成的一个简单的黑色领域与一个单一的白色矩形里面,我怎么能提取矩形的坐标?我搜索了谷歌搜索,并发现了许多关于使用霍夫线,卷积,形态学等边缘检测的文章,但所有这些实际上都会影响图像或以某种方式进行转换。我不想改变图像,我想要做的就是找到边缘。很明显,我可以简单地遍历整个图像的宽度和高度,并查看像素颜色(如一些帖子所示),但这看起来非常低效。有没有内置算法?似乎这一定是imagick某个地方的一部分,否则它怎么可能找到并画出内部图像的边缘?但我很难找到如何解决这个问题。php - 如何使用imagick或其他库找到图像边缘的坐标?
0
A
回答
1
$base = new Imagick(realpath('./trim.png'));
$base->trimImage(0);
// get the new image size
$geometry = $base->getImageGeometry();
// Retrieve the trim info
$pageInfo = $base->getImagePage();
一个类似的例子是手动页上: http://php.net/manual/en/imagick.trimimage.php#111332
0
它显示为贴到该问题的完整解决方案
如下:
$im->trimImage(0);
$pagedata = $im->getImagePage();
$x = $pagedata['x'];
$y = $pagedata['y'];
$im->setImagePage(0, 0, 0, 0);
$w = $im->width;
$h = $im->height;
没有得到之前设置图像页面高度和宽度将返回整个原始图像的高度和宽度,如参考页面上的注释所示。
事实证明,如果您使用的是使用透明度的图像,解决方案会更容易;它只是单独getImagePage()
功能:
$im = new Imagick(realpath('./image.png'));
$pagedata = $im->getImagePage();
$x = $pagedata['x'];
$y = $pagedata['y'];
$w = $pagedata['width'];
$h = $pagedata['height'];
print("x,y: $x, $y<br>\n");
print("w,h: $w, $h<br>\n");
出于某种原因,如果trimImage(0)
与此透明图像所用的(X,Y)坐标设置为(-1,-1)。不幸的是我对imagick说不清楚为什么会发生这种情况。也许你可以回答这个问题,@丹纳克?
相关问题
- 1. 如何获取图像的边缘坐标?
- 2. 如何使用BingMap计算地图四角(边缘)的坐标?
- 3. 奇怪的边缘检测或其他?
- 4. 找到最近的坐标到其他坐标
- 5. PDF到图像使用PHP-imagick API
- 6. AS3 - 获取边缘坐标
- 7. 边缘检查坐标系
- 8. 如何在图像中找到边缘的法线
- 9. 获取边缘检测后的边缘坐标(Canny)
- 10. 如何测量边缘检测图像边缘的长度?
- 11. 如何找到阈值图像中最低像素的坐标?
- 12. 如何在C#中的图像中找到像素坐标?
- 13. 获取CGPoint的边缘/外部坐标
- 14. 如何使用php将图像上传到其他主机域?
- 15. 如何使用OpenCV查找图像上另一点的坐标
- 16. 在使用Python进行抗锯齿时使用透明边缘消除边缘处的薄边界图像库
- 17. 如何将文本转换为使用php的imagick的图像?
- 18. Actionscript 3 - 查找影片剪辑边缘的坐标
- 19. 找到最大号码。图的边缘
- 20. 使用Ford Fulkerson算法找到边缘?
- 21. 如何使用php imagick确定扭曲的图像?
- 22. 使用php或java开放边缘数据库连接
- 23. 如何设置倾斜边缘的图像或视频
- 24. 平滑的图像边缘
- 25. 如何使用C#将图像嵌入到其他图像?
- 26. 如何在mxGraph边缘创建图像
- 27. Android:使用图库打开图像,但使用其他图像
- 28. 找出其他4个纹理坐标?
- 29. 如何使用PHP中的Imagick库将PDF文件转换为图像?
- 30. 我们如何在matlab中不使用坐标轴或任何其他选项显示图像?
嗯 - 12.9k声望和代码专用答案? Mhhh,如果你可以添加一些单词,会很好。 ([来自评论](http://stackoverflow.com/review/low-quality-posts/10996110)) –
@CharlotteDunois我已经回答了109个问题,标记为'Imagick',总的upvote计数为... 84。其中一些答案花了几个小时写下来。我的答案可能很简短,这不应该太令人惊讶。 – Danack
谢谢丹达克,您的解决方案让我走上正轨。实际上,还需要一步才能使其工作 - 手册页面注释中提到的setImagePage()。所以完整的解决方案在下面(不能发布在这里,因为'迷你降价'格式)。 –