用编程解决习题【计算机图像处理】

用编程解决习题【计算机图像处理】

  • 前言
  • 版权
    • 第三章 03采样量化与像素间关系
      • 作业
      • 编程
    • 第六章 06图像的直方图变换
      • 作业
      • 编程
    • 第七章 07图像的噪声抑制
      • 作业
      • 编程
    • 第十章 10二值图像的分析
      • 作业
      • 编程
  • 最后

前言

2023-12-27 21:11:27

以下内容源自《【计算机图像处理】》
仅供学习交流使用

版权

禁止其他平台发布时删除以下此话
本文首次发布于CSDN平台
作者是CSDN@日星月云
博客主页是https://jsss-1.blog.csdn.net
禁止其他平台发布时删除以上此话

第三章 03采样量化与像素间关系

作业

一、请计算像素点a(0,1)和像素点b(6,9)之间的欧氏距离,棋盘距离以及城区距离。

欧氏距离:((6-0)^2+(9-1)^2)^0.5=10   345 6810勾股数
棋盘距离:max(|0-6|,|1-9|)=8
城区距离:(|0-6|+|1-9|)=14

编程

import java.util.Scanner;

/**
 * 第三章作业
 *
 * 2023-12-27 21:19:15
 *
 * 一、请计算像素点a(0,1)和像素点b(6,9)之间的欧氏距离,棋盘距离以及城区距离。
 *  欧氏距离:((6-0)^2+(9-1)^2)^0.5=10   345 6810勾股数
 *  棋盘距离:max(|0-6|,|1-9|)=8
 *  城区距离:(|0-6|+|1-9|)=14
 *
 *
 *
 */
public class Main3 {
    static class Point{
        int x;
        int y;

        public Point(){

        }

        public Point(int x,int y){
            this.x=x;
            this.y=y;
        }

        //欧式距离
        public static double distance1(Point p1,Point p2){
            return Math.sqrt(Math.pow(p1.x-p2.x,2)+Math.pow(p1.y-p2.y,2));
        }

        //棋盘距离
        public static double distance2(Point p1,Point p2){
            return Math.max(Math.abs(p1.x-p2.x),Math.abs(p1.y-p2.y));
        }

        //城区距离
        public static double distance3(Point p1,Point p2){
            return Math.abs(p1.x-p2.x)+Math.abs(p1.y-p2.y);
        }


    }


    public static Point p1;
    public static Point p2;

    //手动改值初始化
    public static void init(){
        p1=new Point(0,1);
        p2=new Point(6,9);
    }

    //自动输入初始化
    //0 1 6 9
    static void input() {
        Scanner scanner=new Scanner(System.in);
        int x1=scanner.nextInt();
        int y1=scanner.nextInt();
        int x2=scanner.nextInt();
        int y2=scanner.nextInt();
        p1=new Point(x1,y1);
        p2=new Point(x2,y2);
    }

    public static void main(String[] args) {
//        input(); //输入

        init();//手动改值
        System.out.println(Point.distance1(p1,p2));//10.0
        System.out.println(Point.distance2(p1,p2));//8.0
        System.out.println(Point.distance3(p1,p2));//14.0

    }




}



第六章 06图像的直方图变换

作业

一幅灰度级为8的图像对应的归一化直方图为[0.17,0.25,0.21,0.16,0.07,0.08,0.04,0.02]。用列表法计算直方图均衡化后图像的灰度级和对应的概率,并画出处理前后直方图的对比图。

原始灰度级k01234567
原始直方图sk0.170.250.210.160.070.080.040.02
累计直方图tk0.170.420.630.790.860.940.981.0
扩展取整12456667
映射0->11->22->43->54->65->66->67->7
均衡化直方图0.170.250.210.160.190.02

编程

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main6 {

    //原始直方图
    static double[] sk;

    static int n;

    static int l;

    //累计直方图
    static double[] tk;

    //扩展取整
    static int [] extend;

    //均衡化后的直方图
    static double[] equalized;


    //手动改值初始化
    public static void init(){
        sk =new double[]{0.17,0.25,0.21,0.16,0.07,0.08,0.04,0.02};
        n= sk.length;
        l= n-1;
    }

    //自动输入初始化
    //8
    //0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02
    static void input() {
        Scanner scanner=new Scanner(System.in);
        //输入长度
        n= scanner.nextInt();
        l=n-1;
        sk =new double[n];
        int c=0;
        for (int i = 0; i < n; i++) {
            sk[c++]= scanner.nextDouble();
        }
    }

    public static void main(String[] args) {
//        input(); //输入


        init();//手动改值

        equalize();

    }

    //均衡化
    public static void equalize(){

        System.out.println("输出原始直方图:");
        System.out.println(Arrays.toString(sk));

        tk=new double[n];
        tk[0]=sk[0];

        for (int i = 1; i < n; i++) {
            tk[i]=tk[i-1]+sk[i];
        }

        System.out.println("输出累计直方图:");
        System.out.println(Arrays.toString(tk));

        extend=new int[n];
        for (int i = 0; i < n; i++) {
            extend[i]=(int)(tk[i]*l);
        }
        System.out.println("输出扩展取整:");
        System.out.println(Arrays.toString(extend));


        ArrayList<ArrayList<Integer>> map=new ArrayList<>();
        for (int i = 0; i < n; i++) {
            map.add(new ArrayList<>());
        }
        for (int i = 0; i < n; i++) {
            map.get(extend[i]).add(i);
        }

        System.out.println("输出映射关系:");
        for (int i = 0; i < n; i++) {
            ArrayList<Integer> cur=map.get(i);
            if (!cur.isEmpty()){
                System.out.print(cur+"->"+i+"\t");
            }
        }
        System.out.println();


        equalized=new double[n];
        for (int i = 0; i < n; i++) {
            ArrayList<Integer> cur=map.get(i);
            if (!cur.isEmpty()){
                for (Integer j : cur) {
                    equalized[i]+=sk[j];
                }
            }
        }

        System.out.println("输出均衡化的直方图:");
        System.out.println(Arrays.toString(equalized));

    }
}

输出原始直方图:
[0.17, 0.25, 0.21, 0.16, 0.07, 0.08, 0.04, 0.02]
输出累计直方图:
[0.17, 0.42000000000000004, 0.63, 0.79, 0.8600000000000001, 0.9400000000000001, 0.9800000000000001, 1.0]
输出扩展取整:
[1, 2, 4, 5, 6, 6, 6, 7]
输出映射关系:
[0]->1	[1]->2	[2]->4	[3]->5	[4, 5, 6]->6	[7]->7	
输出均衡化的直方图:
[0.0, 0.17, 0.25, 0.0, 0.21, 0.16, 0.19000000000000003, 0.02]


第七章 07图像的噪声抑制

作业

此处注意,要点明凡是代替的点就是噪声点。
在这里插入图片描述
1.均值滤波
周围所有邻居的平均值
2.中值滤波
周围所有邻居的中位数
3.KNN滤波
周围和他差值最小的K个邻居的平均值

编程


import java.util.Arrays;
import java.util.Scanner;

/**
 *
 * 1、设原图像为
 * 4 4
 * 59 60 58 57
 * 61 90 59 57
 * 62 59 0  58
 * 56 61 60 56
 *
 *
 * 请对其进行均值滤波和中值滤波,并分析结果异同
 *
 *
 */

public class Main7 {

    static int[][] grid;

    static int n;
    static int m;

    //------------------------------------------------------------------------------------

    public static void init(){
        grid= new int[][]{
                {59, 60, 58, 57},
                {61, 90, 59, 57},
                {62, 59, 0, 58},
                {56, 61, 60, 56}
        };
        n= grid.length;
        m=grid[0].length;

    }

    /*
     4 4
     59 60 58 57
     61 90 59 57
     62 59 0  58
     56 61 60 56
     */
    public static void input(){
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();
        m=scanner.nextInt();
        grid=new int[n][m];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                grid[i][j]=scanner.nextInt();
            }
        }
    }

    //------------------------------------------------------------------------------------


    public static void main(String[] args) {
//        input(); //输入

        init();//手动改值


        System.out.println("输出原始图像");
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(grid[i]));
        }

        System.out.println("输出均值滤波图像");
        int[][] meanFiltered=meanFiltering();
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(meanFiltered[i]));
        }


        //输出中值滤波图像
        System.out.println("输出中值滤波图像");
        int[][] medianFiltered=medianFiltering();
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(medianFiltered[i]));
        }

    }
    
    //------------------------------------------------------------------------------------


    private static int[][] meanFiltering(){
        int[][] meanFiltered=new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                meanFiltered[i][j]=grid[i][j];
            }
        }

        for (int i = 1; i < n-1; i++) {
            for (int j = 1; j < m-1; j++) {
                meanFiltered[i][j]=mean(i,j);
            }
        }


        return meanFiltered;
    }

    //返回(x,y)周围9个点的均值
    // 四舍五入
    private static int mean(int x, int y) {
        int sum=0;
        for (int i = x-1; i <= x+1; i++) {
            for (int j = y-1; j <= y+1; j++) {
                sum+=grid[i][j];
            }
        }
        return (int)(sum/9.0+0.5);
    }

    //------------------------------------------------------------------------------------

    private static int[][] medianFiltering() {
        int[][] medianFiltered=new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                medianFiltered[i][j]=grid[i][j];
            }
        }

        for (int i = 1; i < n-1; i++) {
            for (int j = 1; j < m-1; j++) {
                medianFiltered[i][j]=median(i,j);
            }
        }
        return medianFiltered;
    }

    private static int median(int x, int y) {
        int[] arr=new int[9];
        int c=0;
        for (int i = x-1; i <= x+1; i++) {
            for (int j = y-1; j <= y+1; j++) {
                arr[c++]=grid[i][j];
            }
        }
        Arrays.sort(arr);
        int m=(9+1)/2;
        return arr[m];
    }
    
}



输出原始图像
[59, 60, 58, 57]
[61, 90, 59, 57]
[62, 59, 0, 58]
[56, 61, 60, 56]
输出均值滤波图像
[59, 60, 58, 57]
[61, 56, 55, 57]
[62, 56, 56, 58]
[56, 61, 60, 56]
输出中值滤波图像
[59, 60, 58, 57]
[61, 60, 59, 57]
[62, 61, 59, 58]
[56, 61, 60, 56]


/**
 *  2、对下图进行KNN平滑滤波,并由结果指出图中的噪声点。
 *
 *     1 5 255 100 200 200
 *     1 7 254 101 10 9
 *     3 7 10 100 2 6
 *     1 0 8 7 2 1
 *     1 1 6 50 2 2
 *     2 3 9 7 2 0
 */

import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main7_2 {
    static int[][] grid;

    static int n;
    static int m;

    static int k=5;

    //------------------------------------------------------------------------------------

    public static void init(){
        grid= new int[][]{
                {1, 5, 255, 100, 200, 200},
                {1, 7, 254, 101, 10, 9},
                {3, 7, 10, 100, 2, 6},
                {1, 0, 8, 7, 2, 1},
                {1, 1, 6, 50, 2, 2},
                {2, 3, 9, 7, 2, 0}
        };
        n= grid.length;
        m=grid[0].length;

    }

    /*
    6 6
    1 5 255 100 200 200
    1 7 254 101 10 9
    3 7 10 100 2 6
    1 0 8 7 2 1
    1 1 6 50 2 2
    2 3 9 7 2 0
     */
    public static void input(){
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();
        m=scanner.nextInt();
        grid=new int[n][m];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                grid[i][j]=scanner.nextInt();
            }
        }
    }

    public static void main(String[] args) {
//        input(); //输入

        init();//手动改值


        System.out.println("输出原始图像");
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(grid[i]));
        }

        System.out.println("输出knn滤波图像");
        int[][] knnFiltered=knnFiltering();
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(knnFiltered[i]));
        }

    }

    private static int[][] knnFiltering() {
        int[][] knnFiltered=new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                knnFiltered[i][j]=grid[i][j];
            }
        }

        for (int i = 1; i < n-1; i++) {
            for (int j = 1; j < m-1; j++) {
                knnFiltered[i][j]=knn(i,j);
            }
        }
        return knnFiltered;

    }

    private static int knn(int x, int y) {

        //优先队列:差值 和 本身的值
        PriorityQueue<int[]> queue=new PriorityQueue<>((a,b)->a[0]-b[0]);
        //按差值排列

        for (int i = x-1; i <= x+1; i++) {
            for (int j = y-1; j <= y+1; j++) {
                queue.add(new int[]{Math.abs(grid[i][j]-grid[x][y]),grid[i][j]});
            }
        }


        int sum=0;
        for (int i = 0; i < k; i++) {
            sum+=queue.poll()[1];
        }
        return (int)(1.0*sum/k+0.5);

    }

}

输出原始图像
[1, 5, 255, 100, 200, 200]
[1, 7, 254, 101, 10, 9]
[3, 7, 10, 100, 2, 6]
[1, 0, 8, 7, 2, 1]
[1, 1, 6, 50, 2, 2]
[2, 3, 9, 7, 2, 0]
输出knn滤波图像
[1, 5, 255, 100, 200, 200]
[1, 6, 162, 64, 25, 9]
[3, 7, 8, 46, 4, 6]
[1, 1, 8, 7, 2, 1]
[1, 1, 7, 16, 2, 2]
[2, 3, 9, 7, 2, 0]


第十章 10二值图像的分析

作业

在这里插入图片描述

1)
不一定对

原始图像
1 1 1 0 0 0
1 0 0 1 0 1
1 0 0 0 0 1
0 0 1 0 1 1
0 1 0 0 1 0
0 0 0 1 0 0

添标签
1 1 1 0 0 0
1 0 0 1 0 2
1 0 0 0 0 2
0 0 3 0 2 2
0 3 0 0 2 0
0 0 0 2 0 0

2)

原始图像
1 1 1 0 0 0
1 0 0 1 0 1
1 0 0 0 0 1
0 0 1 0 1 1
0 1 0 0 1 0
0 0 0 1 0 0


腐蚀
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0


膨胀
1 1 1 1 1 0
1 0 0 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
0 1 1 1 1 0
0 0 0 1 0 0

编程

import java.util.Arrays;
import java.util.Scanner;

/**
 *
 * 设一个二值图像为
     1 1 1 0 0 0
     1 0 0 1 0 1
     1 0 0 0 0 1
     0 0 1 0 1 1
     0 1 0 0 1 0
     0 0 0 1 0 0
 * 1)在8连通意义下,对该图贴标签
 * 2)对上图分别进行一次腐蚀和膨胀运算,结构元素为S=[[1,0],[1,1]]
 * 结构元素原点在S的 (1,1) 坐标处




 */

public class Main8 {

    static int[][] grid;

    static int n;
    static int m;

    static int k=2;
    static int[][] s=new int[][]{
            {1,0},
            {1,1}
    };

    //------------------------------------------------------------------------------------

    public static void init(){
        grid= new int[][]{
                {1, 1, 1, 0, 0, 0},
                {1, 0, 0, 1, 0, 1},
                {1, 0, 0, 0, 0, 1},
                {0, 0, 1, 0, 1, 1},
                {0, 1, 0, 0, 1, 0},
                {0, 0, 0, 1, 0, 0}
        };
        n= grid.length;
        m=grid[0].length;

    }

    /*
     6 6
     1 1 1 0 0 0
     1 0 0 1 0 1
     1 0 0 0 0 1
     0 0 1 0 1 1
     0 1 0 0 1 0
     0 0 0 1 0 0
     */
    public static void input(){
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();
        m=scanner.nextInt();
        grid=new int[n][m];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                grid[i][j]=scanner.nextInt();
            }
        }
    }

    //------------------------------------------------------------------------------------


    public static void main(String[] args) {
//        input(); //输入

        init();//手动改值



        System.out.println("输出原始图像");
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(grid[i]));
        }

        int[][] label=labeling();
        System.out.println("输出标签图像");
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(label[i]));
        }


        int[][] corrosion=corrode();
        System.out.println("输出腐蚀图像");
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(corrosion[i]));
        }

        int[][] expansion=expand();
        System.out.println("输出膨胀图像");
        for (int i = 0; i < n; i++) {
            System.out.println(Arrays.toString(expansion[i]));
        }



    }

    static boolean[][] visited;
    static int labelCount=1;

    static int[][] step=new int[][]{
            {-1,-1},{-1,0},{-1,1},
            {0,-1},{0,0},{0,1},
            {1,-1},{1,0},{1,1}
    };

    private static int[][] labeling() {
        int[][] label=new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                label[i][j]=grid[i][j];
            }
        }

        visited=new boolean[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (grid[i][j]==1){
                    if (!visited[i][j]){
                        dfs(i,j,label);
                        labelCount++;
                    }
                }
            }
        }

        return label;

    }

    private static void dfs(int x, int y,int[][] label) {
        visited[x][y]=true;
        label[x][y]=labelCount;
        for (int i = 0; i < 9; i++) {
            int nextX=x+step[i][0];
            int nextY=y+step[i][1];
            if(nextX>=0&&nextX<n&&nextY>=0&&nextY<m){
                if (grid[nextX][nextY]==1){
                    if (!visited[nextX][nextY]){
                        dfs(nextX,nextY,label);
                    }
                }
            }
        }
    }


    //------------------------------------------------------------------------------------

    //求腐蚀图像
    private static int[][] corrode(){
        int[][] corrosion=new int[n][m];

        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < m-1; j++) {
                if (grid[i][j]==1){
                    corrosion[i][j]=co(i,j);
                }
            }
        }

        return corrosion;
    }



    //腐蚀操作
    private static int co(int x, int y) {
        //是否被腐蚀
        int flag=1;
        for (int i = 0; i < k; i++) {
            for (int j = 0; j < k; j++) {
                if(s[i][j]==1){
                    if (grid[x+i][y+j]!=1){
                        flag=0;
                        break;
                    }
                }
            }
            if (flag==0){
                break;
            }
        }
        return flag;
    }

    //------------------------------------------------------------------------------------

    //求膨胀图像
    private static int[][] expand() {
        int[][] expansion=new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                expansion[i][j]=grid[i][j];
            }
        }

        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < m-1; j++) {
                if (grid[i][j]==0){
                    expansion[i][j]=ex(i,j);
                }
            }
        }
        return expansion;
    }

    //膨胀操作
    private static int ex(int x, int y) {
        //是否被膨胀
        int flag=0;
        for (int i = 0; i < k; i++) {
            for (int j = 0; j < k; j++) {
                if(s[i][j]==1){
                    if (grid[x+i][y+j]==1){
                        flag=1;
                        break;
                    }
                }
            }
            if (flag==1){
                break;
            }
        }
        return flag;
    }

}

输出原始图像
[1, 1, 1, 0, 0, 0]
[1, 0, 0, 1, 0, 1]
[1, 0, 0, 0, 0, 1]
[0, 0, 1, 0, 1, 1]
[0, 1, 0, 0, 1, 0]
[0, 0, 0, 1, 0, 0]
输出标签图像
[1, 1, 1, 0, 0, 0]
[1, 0, 0, 1, 0, 2]
[1, 0, 0, 0, 0, 2]
[0, 0, 3, 0, 2, 2]
[0, 3, 0, 0, 2, 0]
[0, 0, 0, 2, 0, 0]
输出腐蚀图像
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
输出膨胀图像
[1, 1, 1, 1, 1, 0]
[1, 0, 0, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[0, 1, 1, 1, 1, 0]
[0, 0, 0, 1, 0, 0]

最后

我们都有光明的未来

祝大家考研上岸
祝大家工作顺利
祝大家得偿所愿
祝大家如愿以偿
点赞收藏关注哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/274220.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS3用户界面弹性盒子

CSS3用户界面 resize 该CSS3属性用于定义元素是否应该调整大小&#xff0c;如果需要调整大小&#xff0c;那么以哪个轴进行调整。 语法&#xff1a;resize:both | horizontal | none | vertical 注意&#xff1a;该属性仅应用在overflow值而不是visible的元素上。通常而言&am…

《国货之光》-粗粮八宝粉

国潮正当时&#xff0c;好物当自强。赋能国货品牌&#xff0c;打造行业爆品。今天为大家带来的国货好物是老磨坊纯杂粮八宝粉 小时候&#xff0c;经常听妈妈说&#xff0c;要多吃杂粮&#xff0c;对身体好。然后每天不重样的给我做杂粮饭菜。不知道大家有没有和我相同的经历。…

Windows搭建FTP服务器教学以及计算机端口介绍

目录 一. FTP服务器介绍 FTP服务器是什么意思&#xff1f; 二.Windows Service 2012 搭建FTP服务器 1.开启防火墙 2.创建组 ​编辑3.创建用户 4.用户绑定组 5.安装ftp服务器 ​编辑6.配置ftp服务器 7.配置ftp文件夹的权限 8.连接测试 三.计算机端口介绍 什么是网络…

单集群400TB,OceanBase稳定支撑快手核心业务场景

一款日均超过千万人访问的短视频 App 快手&#xff0c;面对高并发流量如何及时有效地处理用户请求&#xff1f;通过在后端配置多套 MySQL 集群来支撑高流量访问&#xff0c;以解决大数据量存储和性能问题&#xff0c;这种传统的 MySQL 分库分表方案有何问题&#xff1f;快手对分…

c语言结构体数组

使用结构体变量建立数据类型后&#xff0c;我们就可以利用这个数据类型创建数组&#xff0c;就比如创建整形数组就可以写为 int arr[ ],那么创建一个自己建立的数据类型的数组就可以写为&#xff1a; 声明的结构体类型名 数组名。 例如我们声明一个结构体类型struct my后&am…

技术扫盲:如何优雅的使用 java -jar

java -jar xxx.jar java -jar 是一个用于在命令行界面中执行 Java 可执行 JAR 文件的命令。它的语法如下&#xff1a; java -jar <JAR 文件路径> [参数]其中&#xff1a; java 是 Java 运行时环境的可执行文件。-jar 是一个选项&#xff0c;表示要执行的文件是一个 JA…

文件IO

文章目录 文章目录 前言 一 . 文件 文件路径 文件类型 Java中操作文件 File 概述 属性 构造方法 方法 createNewFile mkdir 二 . 文件内容的读写 - IO InputStream 概述 FileInputStream 概述 利用 Scanner 进行字符读取 OutputStream 概述 PrintWriter封装O…

【教学类-42-03】20231225 X-Y 之间加法题判断题3.0(确保错误题有绝对错误的答案)

背景需求&#xff1a; 根据需求&#xff0c;0-5以内的判断是21题正确&#xff0c;21题错误&#xff0c;但由于错误答案是随机数抽取&#xff0c;有可能恰好是正确的&#xff0c;所以会出现每套题目的正确数和错误数不一样的情况 优化思路一&#xff1a; 设置如果错误答案与正…

14 UVM sequencer

sequencer是在sequence和driver之间建立连接的中介。最终&#xff0c;它将transactions或sequence items传递给driver&#xff0c;以便将其驱动到DUT。 1. uvm_sequencer class hierarchy uvm_sequencer class declaration: class uvm_sequencer #( type REQ uvm_sequence_i…

美国某金融公司遭遇网络攻击,130 万民众受影响

The Record 网站披露&#xff0c;美国最大的产权保险公司富达国民金融&#xff08;Fidelity National Financial&#xff08;"FNF"&#xff09;&#xff09;子公司向所在州监管机构报告了一起数据泄露事件&#xff0c;并指出有 1316938 人的数据信息被入侵其母公司的…

ActiveMQ漏洞合集

目录 介绍CVE-2015-5254&#xff1a;Apache ActiveMQ任意代码执行漏洞漏洞介绍 & 环境准备漏洞发现Nuclei❌Vulmap✅漏洞验证漏洞利用 CVE-2016-3088&#xff1a;Apache ActiveMQ Fileserver远程代码执行漏洞漏洞发现Nuclei✅Vulmap✅MSF✅第三方工具1&#xff08;漏洞探测…

【SAM系列】I-MedSAM: Implicit Medical Image Segmentation with Segment Anything

论文链接&#xff1a;https://arxiv.org/abs/2311.17081 比较有趣的点&#xff1a;frequency adapter

中间件系列 - Redis入门到实战(原理篇)

前言 学习视频&#xff1a; 黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删除 学习目标 Redis数据结构Redis网…

若依common模块解读,Java小白入门(四)

● 若依springboot版本后端&#xff0c;有两个核心模块&#xff0c;一个是ruoyi-common,一个是ruoyi-framewok,今天我们来看第一个模块ruoyi-common, 一些基类&#xff0c;工具等框架底座&#xff0c;分别来看其包含哪些基本内容&#xff1a; 1. annotation 注解&#xff0c;…

K8S 全局架构图 —— 筑梦之路

kube-apiserver&#xff1a; Kubernetes API 服务器验证并配置 API 对象的数据&#xff0c; 这些对象包括 pods、services、replicationcontrollers 等。API 服务器为 REST 操作提供服务&#xff0c;并为集群的共享状态提供前端&#xff0c; 所有其他组件都通过该前端进行交互。…

传感器原理与应用复习--电感式传感器

文章目录 上一篇自感式电感传感器差动变压器式传感器电涡流式传感器下一篇 上一篇 传感器原理与应用–传感器基本特性与应变式传感器 自感式电感传感器 将线圈通入电流产生磁场&#xff0c;而间隙的大小将影响磁场的大小&#xff0c;从而进行检测 变气隙式电感传感器&#xf…

ERP系统与智能商品系统在供应链管理上的区别和优势在哪些方面?

ERP系统和智能商品系统在供应链管理方面有以下区别和优势&#xff1a; 范围和综合性&#xff1a;ERP系统涵盖了企业的整个供应链管理过程&#xff0c;包括供应商管理、采购管理、库存管理、生产计划和物流管理等。它可以实现供应链上下游的信息共享和协同&#xff0c;提高供应…

第十一章:实验案例一:软件仓库部署及应用

实验环境 随着某公司内部的Linux服务器不断增多&#xff0e;软件更新&#xff0e;系统升级等需求也逐渐凸显。为了提高软件包管理效率&#xff0c;减少重复下载&#xff0c;公司要求部署一台软件仓库服务器&#xff0c;面向内网提供安装源。 需求描述 1&#xff0c;服务器使…

【日志系列】什么是分布式日志系统?

✔️什么是分布式日志系统&#xff1f; 现在&#xff0c;很多应用都是集群部署的&#xff0c;一次请求会因为负载均衡而被路由到不同的服务器上面&#xff0c;这就导致一个应用的日志会分散在不同的服务器上面。 当我们要向通过日志做数据分析&#xff0c;问题排查的时候&#…