Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java

  1. Java로 OpenCV 중앙값 블러(Median Blur) 구현하는 방법

    이미지에 저역 통과 필터(low-pass filter)를 적용하면 이미지를 부드럽게 흐릿하게(blur) 만들 수 있습니다. 이 과정에서 노이즈나 가장자리 같은 고주파 성분이 제거됩니다. 중앙값 블러(Median Blur)는 OpenCV가 제공하는 블러링 기법 중 하나로, 이미지의 소금-후추(salt and pepper) 노이즈를 제거하는 데 특히 효과적입니다. 이 기법은 커널(kernel) 영역 내 모든 픽셀 값의 중앙값(median)을 계산하여 중심 픽셀을 대체하는 방식으로 동작합니다. medianBlur() 메서드를 사용하면

  2. OpenCV를 활용한 Java 이미지 침식(Erosion) 예제 가이드

    침식(Erosion)과 팽창(Dilation): 형태학적 연산의 기본 침식(Erosion)과 팽창(Dilation)은 형태학적(morphological) 이미지 처리에서 가장 기본이 되는 두 가지 연산입니다. 형태학적 연산이란 이름 그대로 이미지의 형태(모양)를 기준으로 이미지를 처리하는 연산들의 집합을 의미합니다. 침식 연산이 진행되는 동안에는 이미지 경계 부분의 픽셀이 제거됩니다. 이때 제거되는 픽셀의 총 개수는 사용되는 구조 요소(Structuring Element), 즉 커널(kernel)의 크기에 따라 달라집니다. Img

  3. OpenCV 이미지 팽창(Dilation) 처리 – Java 예제로 배우는 모폴로지 연산

    침식(Erosion)과 팽창(Dilation)은 모폴로지(morphological) 연산의 두 가지 기본 동작입니다. 이름에서 알 수 있듯이, 모폴로지 연산이란 이미지를 그 형태(shape)를 기준으로 처리하는 연산들의 집합을 의미합니다. 이미지 팽창(Dilation)이란? 팽창 연산이 진행되는 동안 이미지의 경계에 추가적인 픽셀이 더해집니다. 이때 추가되는 총 픽셀 수는 사용되는 구조 요소(structuring element)의 크기에 따라 결정됩니다. Java에서는 Imgproc 클래스가 제공하는 dilate() 메서드를 사용하

  4. Java와 OpenCV로 이미지 회전하기 – warpAffine() 메서드 완벽 가이드

    OpenCV의 Imgproc 클래스가 제공하는 warpAffine() 메서드는 지정된 이미지에 아핀 변환(affine transformation)을 적용합니다. 이 메서드는 다음과 같은 매개변수를 받습니다.원본 이미지, 결과 이미지, 변환 행렬을 나타내는 세 개의 Mat 객체출력 이미지의 크기를 나타내는 정수 값(Size 객체)이미지를 회전하려면 먼저 회전 행렬(rotation matrix)을 생성한 뒤, 이를 변환 행렬로서 warpAffine() 메서드에 다른 매개변수와 함께 전달하면 됩니다.회전 행렬 만들기회전 행렬은 getRo

  5. OpenCV로 Java에서 이미지 이동(Translation) 처리하기 – warpAffine() 예제

    OpenCV의 warpAffine() 메서드란?OpenCV의 Imgproc 클래스가 제공하는 warpAffine() 메서드는 지정된 이미지에 아핀 변환(Affine Transformation)을 적용합니다. 이 메서드는 다음과 같은 매개변수를 받습니다.세 개의 Mat 객체 — 각각 원본 이미지(src), 결과 이미지(dst), 그리고 변환 행렬(transformation matrix)을 나타냅니다.출력 이미지 크기 — 결과 이미지의 크기를 나타내는 Size 객체입니다.이미지를 이동(Translate)시키려면 먼저 이동 행렬을 생성한

  6. Java 9 JShell에서 /list 명령어로 코드 목록 조회하는 방법

    JShell이란? JShell은 Java 9에서 처음 도입된 명령줄(command-line) 도구로, main() 메서드 없이도 간단한 문장, 표현식, 메서드, 클래스를 입력하고 결과를 즉시 확인할 수 있는 REPL(Read-Eval-Print Loop) 환경입니다. 코드 조각과 고유 ID JShell에 코드를 입력하면 해당 코드에는 고유 ID(unique ID)가 자동으로 할당됩니다. 이 ID는 1부터 시작하여 JShell에 입력되는 명령마다 1씩 증가합니다. JShell 시작 시 자동으로 로드되는 라이브러리(임포트 문)에도 마

  7. OpenCV Java 이미지 크기 조정 예제 – Imgproc.resize() 활용법

    OpenCV에서 Imgproc 클래스의 resize() 메서드를 사용하면 지정한 이미지의 크기를 손쉽게 조절할 수 있습니다. 이 메서드는 다음과 같은 매개변수를 받습니다.원본 이미지와 결과 이미지를 나타내는 두 개의 Mat 객체출력 이미지의 크기를 지정하는 Size 객체가로 방향(수평 축)의 배율을 나타내는 double형 변수세로 방향(수직 축)의 배율을 나타내는 double형 변수크기 조정 시 사용할 보간법(interpolation) 방식을 지정하는 정수형 변수예제 코드아래 예제는 OpenCV와 JavaFX를 함께 사용하여 이미지

  8. Java OpenCV로 이미지에 노이즈 추가하는 방법 – 단계별 완벽 가이드

    OpenCV는 이미지 처리 작업을 위한 강력한 오픈소스 컴퓨터 비전 라이브러리입니다. 이 글에서는 Java 환경에서 OpenCV 라이브러리를 활용해 이미지에 노이즈(noise)를 추가하는 방법을 단계별로 자세히 살펴보겠습니다. 이미지에 노이즈를 추가하는 절차 이미지 불러오기: 대상 이미지 파일을 읽어 Mat 객체에 저장합니다. 빈 행렬 생성: 노이즈를 담을 행렬과 최종 결과물을 담을 행렬, 두 개의 빈 행렬을 추가로 만듭니다. MatOfDouble 행렬 준비: 평균(mean)과 표준편차(standard deviation)를 저장할

  9. JavaFX에서 두 개의 엄지(썸)를 가진 슬라이더 만드는 방법

    일반적으로 슬라이더(Slider)는 연속적인 값의 범위를 표시하는 컴포넌트입니다. 슬라이더에는 숫자 값이 표시되는 트랙(track)이 있으며, 트랙 위에는 해당 숫자를 가리키는 엄지(thumb)가 배치됩니다. 슬라이더를 생성할 때 최솟값, 최댓값 그리고 초기값을 직접 지정해 줄 수 있습니다.기본 JavaFX 슬라이더의 한계JavaFX에서 기본적으로 제공하는 슬라이더는 엄지(썸)가 하나뿐입니다. 따라서 시작 값과 끝 값을 동시에 선택할 수 있는 두 개의 엄지를 가진 범위 슬라이더를 만들려면 외부 라이브러리인 org.controlsfx

  10. JavaFX 슬라이더(Slider) 만드는 방법 완벽 가이드

    JavaFX Slider란?JavaFX는 Slider라는 클래스를 제공하며, 이 클래스는 연속적인 값의 범위를 표시하는 슬라이더 컴포넌트를 나타냅니다. 슬라이더는 숫자 값이 표시되는 트랙(track)으로 구성되어 있으며, 트랙 위에는 현재 선택된 값을 가리키는 썸(thumb)이라 불리는 핸들이 함께 제공됩니다. 슬라이더를 생성할 때 최댓값, 최솟값, 그리고 초기값을 직접 지정할 수 있어 사용자 입력을 직관적으로 받을 수 있는 UI 요소입니다.JavaFX에서 슬라이더를 만드는 방법슬라이더를 만드는 과정은 크게 세 단계로 이루어집니다.

  11. OpenCV equalizeHist()로 그레이스케일 이미지 밝기와 대비 조절하기

    OpenCV의 Imgproc 클래스가 제공하는 equalizeHist() 메서드는 그레이스케일 이미지를 입력받아 해당 이미지의 히스토그램을 평활화(equalize)합니다. 이 처리를 통해 이미지의 밝기가 정규화되고 명암 대비가 크게 향상됩니다. 히스토그램 평활화는 픽셀 강도 분포를 재분배하여 어두운 영역과 밝은 영역의 균형을 맞추는 기법으로, 저대비 이미지를 더욱 선명하게 만들 때 널리 사용됩니다. equalizeHist() 메서드는 다음 두 가지 매개변수를 받습니다. 원본 그레이스케일 이미지를 나타내는 Mat 객체 처리 결과를

  12. OpenCV를 활용해 Java에서 컬러맵(Colormap) 적용하기 – applyColorMap() 완벽 가이드

    이미지 처리에서 컬러맵(Color Map)은 흑백 또는 단일 채널 이미지에 색상을 입혀 시각적으로 더 잘 드러나도록 만드는 기법입니다. 데이터 시각화, 히트맵(Heatmap) 제작, 의료 영상 분석 등 다양한 분야에서 활용됩니다.OpenCV의 Imgproc 클래스가 제공하는 applyColorMap() 메서드를 사용하면 이런 컬러맵을 단 한 줄의 코드로 이미지에 적용할 수 있습니다.applyColorMap() 메서드의 매개변수이 메서드는 다음 세 가지 매개변수를 받습니다.src – 컬러맵을 적용할 원본 이미지(Mat 객체)dst –

  13. Java OpenCV Mat 클래스 완벽 정리: 이미지 데이터의 핵심

    OpenCV의 Mat 클래스란?OpenCV에서 이미지는 Mat 객체에 저장됩니다. Mat은 n차원 배열(n-dimensional array)로, 그레이스케일 또는 컬러 이미지뿐만 아니라 복셀 볼륨(voxel volumes), 벡터 필드(vector fields), 포인트 클라우드(point clouds), 텐서(tensors), 히스토그램(histograms) 등 다양한 형태의 데이터를 저장하는 데 활용됩니다.즉, OpenCV에서 모든 이미지 처리 작업의 출발점은 Mat 객체라고 할 수 있습니다.이미지를 Mat 객체로 읽어들이기Op

  14. Java로 OpenCV Mat 객체를 선언하고 활용하는 방법

    OpenCV에서 Mat 클래스는 이미지를 저장하는 데 사용되는 행렬(matrix) 객체를 나타냅니다. 이미지 파일을 불러오는 것 외에도, Mat 객체를 직접 선언하여 원하는 형태의 행렬을 만들 수 있습니다.Mat 객체 선언 절차OpenCV 네이티브 라이브러리 로드 — OpenCV 라이브러리를 사용해 Java 코드를 작성할 때 가장 먼저 해야 할 일은 loadLibrary() 메서드를 통해 OpenCV의 네이티브 라이브러리를 로드하는 것입니다.Mat 클래스 인스턴스화 — 다양한 생성자 중 하나를 사용하여 Mat 클래스의 인스턴스를 생

  15. Java 9 모듈에서 ServiceLoader 클래스를 활용하는 방법

    자바에는 java.util 패키지에 ServiceLoader 클래스가 포함되어 있으며, 이 클래스를 활용하면 런타임에 클래스패스(classpath)를 검색하여 서비스 프로바이더(service provider)를 자동으로 찾아낼 수 있습니다. 특히 Java 9부터 도입된 모듈 시스템에서 정의된 서비스 프로바이더를 다룰 때 유용하게 사용됩니다.모듈에서의 서비스 선언 예제예를 들어, test.app 모듈에서 로거(Logger)를 사용해야 한다고 가정해 보겠습니다. 이때 LoggerFinder 서비스를 통해 System.getLogger(

  16. Java 9 JShell의 다양한 /types 명령어 완벽 정리

    JShell은 Java 9 버전에서 새롭게 도입된 도구로, REPL(Read-Evaluate-Print-Loop) 방식을 기반으로 합니다. 이를 통해 Java 코드를 작성하고 즉시 결과를 확인할 수 있습니다. JShell 세션에서 선언된 타입(class, interface, enum 등)의 목록을 확인하려면 /types 명령어를 사용하면 됩니다. JShell의 /types 명령어 종류 JShell에서 사용할 수 있는 /types 명령어는 다음과 같은 형태로 제공됩니다. /types /types [ID] /types [Type_

  17. Java 9의 jmod 형식이란? 개념과 jmod 도구 사용법 총정리

    Java 9의 새로운 모듈 패키징 형식, jmod란? Java 9는 모듈을 캡슐화하기 위해 jmod라는 새로운 파일 형식을 도입했습니다. jmod 파일은 기존 JAR 파일보다 더 다양한 유형의 콘텐츠를 담을 수 있도록 설계되었으며, 네이티브 코드(native code), 설정 파일(configuration files), 네이티브 명령어 등 여러 종류의 데이터를 함께 패키징할 수 있습니다. 다만 jmod 형식은 런타임(runtime) 환경에서는 지원되지 않으며, 현재는 ZIP 형식을 기반으로 구현되어 있습니다. 대신 jmod 형식은

  18. JavaFX를 사용해 OpenCV Mat 객체 이미지를 화면에 표시하는 방법

    JavaFX 라이브러리는 ImageView라는 이름의 클래스를 제공하며, 이 클래스를 활용하면 이미지를 화면에 간편하게 표시할 수 있습니다. ImageView 클래스는 WritableImage 클래스의 객체를 매개변수로 받습니다. OpenCV의 Mat 객체에 저장된 이미지를 JavaFX에서 표시하려면 먼저 해당 Mat 객체를 WritableImage 객체로 변환한 뒤, 이를 ImageView 클래스에 전달해야 합니다. Mat 객체를 WritableImage로 변환하는 3단계 OpenCV Mat 객체를 JavaFX의 WritableI

  19. Swing을 활용해 OpenCV Mat 객체를 화면에 표시하는 방법

    Java Swing에서 ImageIcon 클래스는 Image 객체로부터 아이콘을 그려주는 Icon 인터페이스의 구현체입니다. 이 클래스를 사용하면 Swing 윈도우에 손쉽게 이미지를 표시할 수 있으며, 생성자는 BufferedImage 객체를 매개변수로 받습니다.따라서 OpenCV에서 Mat 객체로 저장된 이미지를 Swing 윈도우에 표시하려면 다음과 같은 과정이 필요합니다.핵심 처리 순서1. Imgcodecs.imread()로 파일을 읽어 Mat 객체를 생성합니다.2. Imgcodecs.imencode()를 이용해 Mat 객체를

  20. Java에서 MongoDB 데이터 조회 시 skip() 메서드로 문서 건너뛰는 방법

    개요MongoDB 컬렉션에서 레코드를 조회할 때 skip() 메서드를 사용하면 결과 중 앞부분의 일정 개수 문서를 건너뛸 수 있습니다. 이 기능은 게시판 페이징 처리처럼 대량의 데이터를 페이지 단위로 나누어 보여줄 때 특히 유용합니다.문법db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)Java용 MongoDB 드라이버 역시 동일한 이름의 skip() 메서드를 제공합니다. find() 메서드의 결과에 대해 건너뛸 레코드 수를 나타내는 정수 값을 인자로 전달하여 호출하면 됩니다.예제 코드다음

Total 1926 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:60/97  20-컴퓨터/Page Goto:1 54 55 56 57 58 59 60 61 62 63 64 65 66