「黑白矩阵java」零矩阵对称矩阵

博主:adminadmin 2022-12-31 12:09:10 647

今天给各位分享黑白矩阵java的知识,其中也会对零矩阵对称矩阵进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 得到一个二维的int灰度型矩阵,怎么把它输出为jpg格式的图片?求大神解答

new一个BufferedImage,然后遍历数组,设置像素颜色,用ImageIo.write写出。

我想把一个黑白的线条的手绘图片转换成一个矩阵存储,黑用0,白用1,请问用java如何实现

import java.io.File;

import java.io.FileInputStream;

public class Test {

    /**

     * 将图片转成0/1矩阵

     * @param imagePath

     * @return

     * @throws IOException

     */

    public int[][] imgMtr(String imagePath) throws Exception {

        java.awt.image.BufferedImage image = 

                javax.imageio.ImageIO.read(new FileInputStream(new File(imagePath)));

        int w = image.getWidth();

        int h = image.getHeight();

        int[][] mtr = new int[h][w]; // 存储矩阵

        for (int i = 0; i  h; i++) {

            for (int j = 0; j  w; j++) {

                int rgb = image.getRGB(j, i);  //aRGB                

                // 依次检查R、G、B是否超过阈值

                // 超过视为白色,否则黑色

                int r = (rgb  0x00ff0000)  16;

                int g = (rgb  0x0000ff00)  8;

                int b = (rgb  0x000000ff);

                int a = 0xff / 2;  //阈值, 可根据需要设定

                if (r  a  g  a  b  a) {

                    mtr[i][j] = 1;

                } else {

                    mtr[i][j] = 0;

                }

            }

        }

        return mtr;

    }

    public static void main(String[] args) throws Exception {

        Test test = new Test();

        int[][] result = test.imgMtr("F:\\hex.jpg");

        for (int[] row : result) {

            for (int col : row) {

                System.out.print(col);

            }

            System.out.print("\n");

        }

    }

}

用java 编写一个矩阵类Matrix,要求能利用该矩阵类生成任意行、列的矩阵对象,比如3╳5矩阵,10╳20矩阵

public class Matrix {

// 表示行和列

private int mRow, mColumn;

// 构造方法

public Matrix(int row, int column) {

mRow = row;

mColumn = column;

}

// 获取0-20随机数

private int random() {

double random1 = Math.random();// 这个Math类的方法可以获取0.0-1.0之间的随机数

double random2 = random1 * 20; // 0.0 - 20.0

return (int) random2;

}

// 创建矩阵

private void createMatrix() {

int totalCount = mRow * mColumn; // 总共有那么多

for (int count = 1; count = totalCount; count++) {

int number = random();// 上面的方法

System.out.print(number  10 ? "0" + number : number); // 输出数字,如果数字小于10,前面加0补全两位

System.out.print(" "); // 分隔符,随便填

if (count % mRow == 0) {

System.out.println(); // 换行

}

}

}

public static void main(String[] args) {

Matrix matrix = new Matrix(3, 5); // 几行几列传进去

matrix.createMatrix();

}

}

为了经验我也是蛮拼的了

用JAVA编写矩阵

public static void main(String[] args) throws Exception {

print(create(getNum()));

}

private static int getNum() {

Scanner scanner = new Scanner(System.in);

int n = 0;

do {

System.out.println("请输入要生成的阶数:");

String input = scanner.next();

if (isDigital(input)) {

n = Integer.parseInt(input);

if (n = 0) {

System.out.println("阶数必须大于0");

}

}

} while (n == 0);

return n;

}

private static int[][] create(int n) {

int[][] num = new int[n][n];

int ax = 1, ay = 0, x = 0, y = 0;

for (int m = 1; m = n * n; m++) {

num[x][y] = m;

int tmpx = x + ax;

int tmpy = y + ay;

if (tmpx = n || tmpx 0 || tmpy = n || tmpy 0 || num[tmpx][tmpy] != 0) {

if (ax == 0) {

ax = -ay;

ay = 0;

} else if (ay == 0) {

ay = ax;

ax = 0;

}

}

x += ax;

y += ay;

}

return num;

}

private static void print(int[][] num) {

int length = String.valueOf(num.length * num.length).length();

for (int i = 0; i num.length; i++) {

for (int j = 0; j num[i].length; j++) {

String tmp = String.valueOf(num[i][j]);

while (tmp.length() length) {

tmp = " " + tmp;

}

System.out.print(tmp + " ");

}

System.out.println();

}

}

private static boolean isDigital(String input) {

if (input == null || input.length() == 0) return false;

for (int i = 0; i input.length(); i++) {

char ch = input.charAt(i);

if (!Character.isDigit(ch)) {

System.out.println("输入的阶数必须为数字");

return false;

}

}

return true;

}

运行时输入要生成的阶数就可以了,比如生成问题上的矩阵输入4就可以了。

java如何判断照片是彩色还是黑白?谢谢

给个建议吧,不过我不知道行不行得通,我毕业设计是做图像处理的

你可以判断图片的其中一个像素点,彩色图一般都是RGB组合成的,格式是那种3*3的矩阵,而黑白图像的像素点是通过一个固定的公式转换来的,转换后的像素点是1*3的矩阵,你可以通过判断其中一个像素的列的个数来区分彩色还是黑白。。。如果可以的话就给下分吧,,谢谢!

用JAVA写一个矩阵类

昨天刚帮一个网友改编的,输出矩阵并且在矩阵求幂后输出矩阵的一个类,直接可以运行。

注释都有的。希望你用的得到。import java.util.Scanner;

public class JuZhen {

//定义计算方法

public static int calc(int x, int y,int score){

if(x==0 y==0){

score = 0;

}else {

score = 1;

}

return score;

}

//输入矩阵

public static void shuru(){

Scanner input = new Scanner(System.in);//Scanner是用来接纳系统控制台输的字符串的

System.out.print("请输入矩阵的阶数:");

int n = input.nextInt(); //取一个输入的字符赋值给n

int M[][] = new int[n][n]; //定义数组维数.初始化数组,定义了一个双向的长度为

//n的

System.out.print("请输入矩阵的的值(0-1):");

for(int i=0;iM.length ;i++){ //不能以0开始

for(int j=0 ;jM[i].length ; j++){

M[i][j] = input.nextInt();

}

}

System.out.println("你输入的矩阵为:");

for(int i=0;iM.length ;i++){ //显示矩阵

System.out.print("\n");

for(int j=0 ;jM[i].length ; j++){

System.out .print(M[i][j] + "\t") ;

}

}

}

//仅仅是一个求幂的递归。

int myPow(int x, int y) {

int pow = 0;

if (y 0) {

pow = x * myPow(x, y - 1);// 2,3//2*2,3-1

}

if (y 0) {

pow = 1 / x * myPow(x, y + 1);

}

if (y == 0) {

pow = 1;

}

return pow;

}

//程序入口

public static void main(String[] args){

Scanner input = new Scanner(System.in);

System.out.print("请输入矩阵的阶数:");

int n = input.nextInt();//这个相当于确定行数。

int M[][] = new int[n][n];

//定义数组维数

System.out.print("请输入矩阵的的值(0-1):");

for(int i=0;iM.length ;i++){ //外循环表示行,在外循环已知的情况下去填内循环,内循环表示列

for(int j=0 ;jM[i].length ; j++){

M[i][j] = input.nextInt();

}

}

int temp[][] =new int[n][n];

int m[][] =new int[n][n];

System.out.println("你输入的矩阵为:");

for(int i=0;iM.length ;i++){ //显示矩阵

System.out.print("\n"); //执行完外循环也就是打印出一行后换行

for(int j=0 ;jM[i].length ; j++){

temp[i][j] = M[i][j] ; //赋给矩阵temp

System.out .print(M[i][j] + "\t") ;//执行完内循环也就是一列时空两格。\t为tab键起退格作用

}

}

System.out.print("\n\n你想求几次方:");

int c =input.nextInt(); //获得幂次

for (int k=0; kc;k++){ //最外层的循环和里边的两层循环也就是二维数组里的每个都有交集,也就是每个都要求幂

for(int i=0 ; iM.length; i++){

for(int j=0; jM[i].length ;j++){

m[i][j]= new JuZhen().myPow(temp[i][j],c);

}

}

}//for k

for(int i=0;im.length ;i++){ //显示矩阵

System.out.print("\n");

for(int j=0 ;jm[i].length ; j++){

System.out .print(m[i][j] + "\t") ;

}

}

}//main

}//class JuZhen

关于黑白矩阵java和零矩阵对称矩阵的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。