有人知道如何给灰度图像添加微妙的噪音吗?我有一个灰度图像,我想给它添加一些微妙的黑和白噪音。有人知道怎么做吗?
我目前正在使用这种方法,但这只是生成随机颜色,并用这些颜色交换现有像素。如何在位图的某些像素上添加一些细微的黑白噪声?
public static Bitmap applyFleaEffect(Bitmap source) {
// get source image size
int width = source.getWidth();
int height = source.getHeight();
int[] pixels = new int[width * height];
// get pixel array from source
source.getPixels(pixels, 0, width, 0, 0, width, height);
// create a random object
Random random = new Random();
int index = 0;
// iteration through pixels
for(int y = 0; y < height; ++y) {
for(int x = 0; x < width; ++x) {
// get current index in 2D-matrix
index = y * width + x;
// get random color
int randColor = Color.rgb(random.nextInt(255),
random.nextInt(255), random.nextInt(255));
// OR
pixels[index] |= randColor;
}}//输出位图bmOut=位图。createBitmap(width,height,source.getConfig());bmOut。设置像素(像素,0,宽度,0,0,宽度,高度);返回bmOut;}}
更新:添加完整代码以显示灰度步长和尝试的噪声步长
//First, apply greyscale to make Image black and white
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, mBitmap.getConfig());
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
//Apply noise after grayscale
int[] pixels = new int[width * height];
bmpGrayscale.getPixels(pixels, 0, width, 0, 0, width, height);
// a random object
Random random = new Random();
int index = 0;
// Note: Declare the c and randColor variables outside of the for loops
int co = 0;
int randColor = 0;
// iteration through pixels
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width; ++x) {
if (random.nextInt(101) < percentNoise) {
// Skip this iteration a certain percentage of the time
continue;
}
// get current index in 2D-matrix
index = y * width + x;
co = random.nextInt(255);
randColor = Color.rgb(co, co, co);
pixels[index] |= randColor;
}
}
// output bitmap
mBitmap = Bitmap.createBitmap(width, height, bmpGrayscale.getConfig());
mBitmap.setPixels(pixels, 0, width, 0, 0, width, height);
c.drawBitmap(mBitmap, 0, 0, paint);
return bmpGrayscale;
}
首先,randColor
不太可能是代码中的灰度颜色。要生成随机的灰度颜色,请执行以下操作:
int c = random.nextInt(255);
int randColor = Color.rgb(c, c, c);
考虑到这一点,我将如何重写您的代码(注意:根据您的喜好调整
percentNoise
参数):
public static Bitmap applyFleaEffect(Bitmap source, int percentNoise) {
// get source image size
int width = source.getWidth();
int height = source.getHeight();
int[] pixels = new int[width * height];
// get pixel array from source
source.getPixels(pixels, 0, width, 0, 0, width, height);
// create a random object
Random random = new Random();
int index = 0;
// Note: Declare the c and randColor variables outside of the for loops
int c = 0;
int randColor = 0;
// iterate through pixels
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width; ++x) {
if (random.nextInt(101) < percentNoise) {
// Skip this iteration a certain percentage of the time
continue;
}
// get current index in 2D-matrix
index = y * width + x;
// get random color
c = random.nextInt(255);
randColor = Color.rgb(c, c, c);
pixels[index] |= randColor;
}
}
Bitmap bmOut = Bitmap.createBitmap(width, height, source.getConfig());
bmOut.setPixels(pixels, 0, width, 0, 0, width, height);
return bmOut;
}
我正在写一些函数来添加位图上的噪声效果。我发现了类似的问题:在绘图中添加噪波效果 位图输出位图=位图。创建位图(bitmap.getWidth(),位图。getHeight(),位图。配置。ARGB_8888); 我应该如何添加滤色器才能得到这样的结果?你能提供一些代码吗?
在新的Google Maps for Android API v2中,我可以很容易地获得自定义标记和信息窗口来显示。然而,我试图在我的信息窗口中设置多个按钮,每个按钮执行不同的操作,但问题是,map将InfoWindow视为它自己的按钮对象(无论我在哪里单击InfoWindow,它都会按下整个按钮)。有人知道如何更多地定制这个吗?
我要做什么::我想使用我当前的实现为圆形图像添加一个黑色边框,如何在不使用第三方库的情况下实现这一点 全面转变。JAVA
本文向大家介绍Android仿微信朋友圈点击加号添加图片功能,包括了Android仿微信朋友圈点击加号添加图片功能的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了类似微信朋友圈,点击+号图片,可以加图片功能,供大家参考,具体内容如下 xml: NinePhotoView.java Measure 我们的子View三个一排,而且都是正方形,所以我们上面通过循环很好去得到所有子View的
问题内容: 我想知道在带有OpenCV的Python或任何其他向图像添加高斯噪声或椒盐噪声的python图像处理库中是否存在某些函数?例如,在MATLAB中,存在直接功能可以完成相同的工作。 或者,如何使用带有OpenCV的Python向图像添加噪点? 问题答案: 该功能会在图像中添加高斯,椒盐,泊松和斑点噪声
嗨,我是android的业余爱好者。我想将图像添加到我的微调器项目中。不幸的是,我不知道怎么做。下面是我的xml文件和Mainactive。感谢阅读。 XML文件 维护活动