자바+opencv 3.2.0 재 맵 실현

재 맵 을 통 해 모든 픽 셀 의 위치(x,y)를 표현 합 니 다.g(x,y)=f(h(x,y),h(x,y)는 맵 방법 함수 입 니 다.h(x,y)=(I.cols()-x,y)는 x 축 방향 에 따라 편향 이 발생 하 는 것 을 나타 낸다.
함수:Imgproc.remap(Mat src,Mat dst,Mat map 1,Mat map 2,int interpolation,int borderMode,Scalar borderValue)
매개 변수 설명:
src:원본 이미지
dst:대상 이미지
map 1:두 가지 표시 가능 한 대상 이 있 습 니 다.하 나 는 점(x,y)을 나타 내 는 첫 번 째 맵 이 고 다른 하 나 는 CV 입 니 다.16SC2、CV_32FC1、CV_32FC2 형식의 X 값
map 2:이것 은 두 가지 표시 가능 한 대상 이 있 습 니 다.하 나 는 map 1 이 점(x,y)을 표시 할 때 그 어떠한 값 도 대표 하지 않 고 다른 하 나 는 CV 입 니 다.16UC1、CV_32FC1 유형의 Y 값
interpolation:삽입 방식,INTER 지원 하지 않 음AREA
borderMode:경계 모드,기본 BORDERCONTANT
borderValue:상수 경계 가 있 을 때 사용 하 는 값 입 니 다.기본 값 은 0 입 니 다.
예제 코드:

public static void main(String[] args)
 {
  System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

  Mat src = Imgcodecs.imread("F:\\t0105b07b97736d453d.jpg");

  Mat dst = src.clone();
  Mat map_x = new Mat(src.size(), CvType.CV_32FC1);
  Mat map_y = new Mat(src.size(), CvType.CV_32FC1);

  int key = 1; // key  1、2、3、4
  for (int i = 0; i < src.rows(); i++)
  {
   for (int j = 0; j < src.cols(); j++)
   {
    switch (key)
    {
    case 1: //    1
     if (j > src.cols() * 0.25 && j < src.cols() * 0.75 && i > src.rows() * 0.25
       && i < src.rows() * 0.75)
     {
      map_x.put(i, j, 2 * (j - src.cols() * 0.25) + 0.5);
      map_y.put(i, j, 2 * (i - src.rows() * 0.25) + 0.5);
     }
     else
     {
      map_x.put(i, j, 0.0);
      map_y.put(i, j, 0.0);
     }
     break;
    case 2: //    2
     map_x.put(i, j, j);
     map_y.put(i, j, src.rows() - i);
     break;
    case 3: //    3
     map_x.put(i, j, src.cols() - j);
     map_y.put(i, j, i);
     break;
    case 4: //    4
     map_x.put(i, j, src.cols() - j);
     map_y.put(i, j, src.rows() - i);
     break;
    default:
     break;
    }
   }
  }
  Imgproc.remap(src, dst, map_x, map_y, Imgproc.INTER_LINEAR, Core.BORDER_CONSTANT,
    new Scalar(0, 0, 0));

  Imgcodecs.imwrite("F:\\dst.jpg", dst);
 }
원본 그림:

첫 번 째 맵:

두 번 째 맵:

세 번 째 맵:

네 번 째 맵:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기