java bitmap去重怎么实现

avatar
作者
猴君
阅读量:2

将Bitmap转成二进制数组,然后遍历数组找出重复的像素点,进行去重操作。

以下是一个示例的Java代码实现:

import java.util.HashSet; import java.util.Set; public class BitmapDuplicateRemoval { public static void main(String[] args) { int[][] bitmap = { {1, 2, 3, 4}, {5, 6, 7, 8}, {1, 2, 3, 4}, {9, 10, 11, 12} }; int[][] result = removeDuplicates(bitmap); for (int[] row : result) { for (int pixel : row) { System.out.print(pixel + " "); } System.out.println(); } } public static int[][] removeDuplicates(int[][] bitmap) { Set<Integer> seen = new HashSet<>(); int height = bitmap.length; int width = bitmap[0].length; int[][] result = new int[height][width]; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { int pixel = bitmap[i][j]; if (!seen.contains(pixel)) { result[i][j] = pixel; seen.add(pixel); } } } return result; } } 

输出结果为:

1 2 3 4 5 6 7 8 0 0 0 0 9 10 11 12 

在上述代码中,我们使用了一个HashSet来存储已经出现过的像素点,如果一个像素点在HashSet中不存在,那么我们将其添加到HashSet中,并将其赋值给结果数组。如果一个像素点已经存在于HashSet中,则将其赋值为0,表示去重。最后返回结果数组。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!