【发布时间】:2015-04-10 18:24:17
【问题描述】:
我有一个项目,其中一部分是让鱼的图片(名为 water.jpg)更显眼。我只是不知道我需要更改哪些像素才能使其正常工作。我试过一次只保留蓝色、绿色或红色,我试过一次只保留蓝色、绿色或红色以外的所有东西。我几乎只需要知道我需要更改哪些图片。我拥有的代码只是几个方法,它们都可以正常工作,但它们是我在水下方法的基础。
public static void main(String[] args) {
Picture beach = new Picture("water.jpg");
beach.explore();
beach. (INSERT.METHOD.HERE);
beach.explore();
}
public void zeroBlue() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setBlue(0);
}
}
}
public void keepOnlyBlue() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setGreen(0);
pixelObj.setRed(0);
}
}
}
public void grayscale() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
int avg = (pixelObj.getGreen() + pixelObj.getBlue() + pixelObj.getRed()) / 3;
pixelObj.setGreen(avg - 3);
pixelObj.setRed(avg - 3);
pixelObj.setBlue(avg - 3);
}
}
}
public void negate() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setGreen(255 - pixelObj.getGreen());
pixelObj.setRed(255 - pixelObj.getGreen());
pixelObj.setBlue(255 - pixelObj.getGreen());
}
}
}
【问题讨论】:
-
与 StackOverflow 无关。
-
我的意思是,它仍然是 java
-
这是什么
Pixel类? -
也许您应该首先尝试使用图像处理程序,例如 GIMP,然后尝试将任何为您带来最佳结果的代码转换为代码。
-
让我解释一下其他人发布的内容。仅仅因为您使用 Java 解决问题并不意味着该问题与 Java 相关。这是一个与摄影相关的问题。摄影师将比软件开发人员提供更好的帮助。一旦您知道根本问题是什么,您就可以要求澄清如何使用 Java 解决问题。
标签: java image-processing