我目前正在编写一段代码,该代码可以更改图像某些像素的颜色。它通过以下方法执行此操作:
inputImage.put(25, 25, colour);
这将选择 x 坐标 25、y 坐标 25 处的像素,然后将其更改为指定的颜色。
我现在必须将此像素及其周围的 24 个像素更改为新颜色,这意味着有一个 5x5 的空间需要重新着色。
我可以想到几种方法来做到这一点。一种方法是迭代图像的所有像素,检查它们的 x 和 y 坐标是否在 23 到 27 之间,如果在,则重新着色。另一种是单独指定每个需要更改的像素。但这两种想法似乎都有些站不住脚。谁能推荐一种更优雅的方法来做到这一点?
最佳答案
不要循环。
相反,设置完整的 5x5 ROI(在 x,y 处):
int x=15,y=7;
in.submat(y-3,y+2, x-3,x+2).setTo(colour);
关于java - 更改特定像素周围 24 个像素的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28280970/