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

Java OpenCV로 이미지에 Bitwise NOT 연산을 수행하는 방법

OpenCV에서는 org.opencv.core.Core 클래스가 제공하는 bitwise_not() 메서드를 사용하여 이미지의 비트 단위 NOT(반전) 연산을 손쉽게 수행할 수 있습니다.

이 메서드는 소스 행렬과 대상 행렬을 나타내는 두 개의 Mat 객체를 인수로 받습니다. 실행되면 소스 행렬의 모든 요소(픽셀 값)를 비트 단위로 반전한 결과를 대상 행렬에 저장합니다. 즉, 밝은 부분은 어둡게, 어두운 부분은 밝게 변환되는 네거티브(negative) 효과를 얻을 수 있습니다.

예제 코드

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;

public class BitwiseNOTExample {
   public static void main(String args[]) throws Exception {
      // OpenCV 핵심 라이브러리 로드
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

      // 이미지 읽기
      String file = "D://images//elephant.jpg";
      Mat src = Imgcodecs.imread(file);
      HighGui.imshow("Grayscale Image", src);

      // 결과를 저장할 빈 행렬 생성
      Mat dst = new Mat(src.rows(), src.cols(), src.type());

      // bitwise not 연산 적용
      Core.bitwise_not(src, dst);
      HighGui.imshow("Bitwise NOT operation", dst);

      HighGui.waitKey();
   }
}

입력 이미지

Java OpenCV로 이미지에 Bitwise NOT 연산을 수행하는 방법

실행 결과

위 프로그램을 실행하면 다음과 같은 창이 생성됩니다.

Java OpenCV로 이미지에 Bitwise NOT 연산을 수행하는 방법