小编j p*_*ton的帖子

图像检测中的线条和边缘有什么区别?

我们一直在学习像 Sobel 和 Roberts 的卷积矩阵这样的方法来检测图像中的边缘,扩展到 Canny 方法来清除它们。但是现在,我们正在学习“线”检测,而不是“边缘”检测 - 使用霍夫变换等方法。

问题是 - 我什至不知道如何概念化“线”和“边缘”之间的区别。有人可以在不使用复杂的数学方程等的情况下向我解释这种差异吗?

image image-processing edge-detection straight-line-detection

4
推荐指数
1
解决办法
4148
查看次数

使用几乎完全重复的代码但对其他方法的不同调用来重构函数

我正在学习 Java,正在学习在线课程等,我正在进行其中一项编码练习,并意识到我的两种方法之间存在大量重复,如下所示:

private static void addCustomerTransaction() {
    System.out.println("Enter the branch name:");
    String branchName = scanner.nextLine();

    System.out.println("Enter the customer name:");
    String customerName = scanner.nextLine();

    System.out.println("Enter the transaction");
    while (!scanner.hasNextDouble()) {
        scanner.next();
    }
    double transaction = scanner.nextDouble();

    bank.addCustomerTransaction(branchName,customerName,transaction);

}

private static void addCustomer() {
    System.out.println("Enter the branch name:");
    String branchName = scanner.nextLine();

    System.out.println("Enter the customer name:");
    String customerName = scanner.nextLine();

    System.out.println("Enter the transaction");
    while (!scanner.hasNextDouble()) {
        scanner.next();
    }
    double transaction = scanner.nextDouble();

    bank.addCustomer(branchName,customerName,transaction);
}
Run Code Online (Sandbox Code Playgroud)

现在显然这两个函数之间的唯一区别是对银行类对象的方法调用 - 最终执行不同的操作。

我想知道如何重构这些方法以减少重复。我了解到:

private static void addCustomerTransaction() …
Run Code Online (Sandbox Code Playgroud)

java methods refactoring code-duplication intellij-idea

3
推荐指数
1
解决办法
2982
查看次数

如何使用接口的私有方法?

我在使用在界面中实现的私有方法时遇到问题。

我在接口print(string, list)中私有地实现了一个方法RequestData,以隐藏实现,因为我不希望除了类的其他打印方法之外调用它 - 但我将它包含在接口中,因为它与每个实现类都相同。

问题是,当我尝试使用printmy 中FundingRequests实现该RequestData接口的方法时,它显示错误 - 该print方法在接口中的访问RequestData是私有的,因此无法找到它。

好吧...如果接口的私有方法无法从实现类中访问,那么您应该如何使用它们呢?

这是一个错误,还是我误解了接口?

界面:

package com.landbay.datamodel.data;

import java.util.List;

public interface RequestData<E> {

    void add(E newRequest);

    List<E> getRequests();

    List<E> getFulfilledRequests();

    List<E> getUnfulfilledRequests();

    void printRequests();

    void printFulfilledRequests();

    void printUnfulfilledRequests();

    private void print(String listTitle, List<E> listToPrint) {
        StringBuilder string = new StringBuilder();
        string.append(listTitle);

        for (E request : listToPrint) {
            string.append("\n").append(request);
        }

        System.out.println(string);
    }

}
Run Code Online (Sandbox Code Playgroud)

违规类和方法:

public class FundingRequests implements RequestData<FundingRequest> { …
Run Code Online (Sandbox Code Playgroud)

java oop private interface access-modifiers

2
推荐指数
1
解决办法
1283
查看次数