我有一个点列表,它们保存着我图像中黑色像素的坐标(x,y)。
List<Point> blackPixels = new List<Point>();
是否有人知道如何将黑色像素的颜色随机改为特定百分比的白色?即将80%的黑色像素变为白色?非常感谢
答案 0 :(得分:2)
Random rand = new Random();
foreach (Point p in blackPixels) {
if (rnd.Next(100) < 80) {
// turn p to white
}
}
对于列表中的每个元素,它会生成0到99之间的数字,这意味着80%的时间数字将介于0到79之间。这样就可以将80%的像素变为白色。
如果您想要更改完全 80%的像素,您可以采取相反的方式:
var numberOfPixelsToTurn = blackPixels.Count * 0.8
var rand = new Random();
for (int i; i < numberOfPixelsToTurn ; i++) {
int itemToTurn = rand.Next(blackPixels.Count);
TurnToWhite(blackPixels[itemToTurn]);
blackPixels.RemoveAt(itemToTurn);
}
答案 1 :(得分:1)
答案 2 :(得分:-1)
Random rnd = new Random();
for(int x=0;x<blackPixels.Length;x++){
int randomNumber = rnd.next(100);
if(randomNumber <= 80){
blackPixels[x] = // add a white pixel
}
}
希望我帮忙!