mirror of
https://github.com/opencv/opencv.git
synced 2024-11-28 21:20:18 +08:00
Add cv::logPolar, cv::linearPolar, and a python example
This commit is contained in:
parent
ada858e1c0
commit
51341738ba
@ -76,14 +76,15 @@ enum { MORPH_RECT = 0,
|
||||
};
|
||||
|
||||
//! interpolation algorithm
|
||||
enum { INTER_NEAREST = 0, //!< nearest neighbor interpolation
|
||||
INTER_LINEAR = 1, //!< bilinear interpolation
|
||||
INTER_CUBIC = 2, //!< bicubic interpolation
|
||||
INTER_AREA = 3, //!< area-based (or super) interpolation
|
||||
INTER_LANCZOS4 = 4, //!< Lanczos interpolation over 8x8 neighborhood
|
||||
enum { INTER_NEAREST = 0, //!< nearest neighbor interpolation
|
||||
INTER_LINEAR = 1, //!< bilinear interpolation
|
||||
INTER_CUBIC = 2, //!< bicubic interpolation
|
||||
INTER_AREA = 3, //!< area-based (or super) interpolation
|
||||
INTER_LANCZOS4 = 4, //!< Lanczos interpolation over 8x8 neighborhood
|
||||
|
||||
INTER_MAX = 7, //!< mask for interpolation codes
|
||||
WARP_INVERSE_MAP = 16
|
||||
INTER_MAX = 7, //!< mask for interpolation codes
|
||||
WARP_FILL_OUTLIERS = 8,
|
||||
WARP_INVERSE_MAP = 16
|
||||
};
|
||||
|
||||
enum { INTER_BITS = 5,
|
||||
@ -1223,6 +1224,14 @@ CV_EXPORTS_W Mat getAffineTransform( InputArray src, InputArray dst );
|
||||
CV_EXPORTS_W void getRectSubPix( InputArray image, Size patchSize,
|
||||
Point2f center, OutputArray patch, int patchType = -1 );
|
||||
|
||||
//! computes the log polar transform
|
||||
CV_EXPORTS_W void logPolar( InputArray src, OutputArray dst,
|
||||
Point2f center, double M, int flags );
|
||||
|
||||
//! computes the linear polar transform
|
||||
CV_EXPORTS_W void linearPolar( InputArray src, OutputArray dst,
|
||||
Point2f center, double maxRadius, int flags );
|
||||
|
||||
//! computes the integral image
|
||||
CV_EXPORTS_W void integral( InputArray src, OutputArray sum, int sdepth = -1 );
|
||||
|
||||
|
@ -4329,6 +4329,14 @@ cvLogPolar( const CvArr* srcarr, CvArr* dstarr,
|
||||
cvRemap( src, dst, mapx, mapy, flags, cvScalarAll(0) );
|
||||
}
|
||||
|
||||
void cv::logPolar( InputArray _src, OutputArray _dst,
|
||||
Point2f center, double M, int flags )
|
||||
{
|
||||
Mat src = _src.getMat();
|
||||
_dst.create( src.size(), src.type() );
|
||||
CvMat c_src = src, c_dst = _dst.getMat();
|
||||
cvLogPolar( &c_src, &c_dst, center, M, flags );
|
||||
}
|
||||
|
||||
/****************************************************************************************
|
||||
Linear-Polar Transform
|
||||
@ -4424,5 +4432,13 @@ void cvLinearPolar( const CvArr* srcarr, CvArr* dstarr,
|
||||
cvRemap( src, dst, mapx, mapy, flags, cvScalarAll(0) );
|
||||
}
|
||||
|
||||
void cv::linearPolar( InputArray _src, OutputArray _dst,
|
||||
Point2f center, double maxRadius, int flags )
|
||||
{
|
||||
Mat src = _src.getMat();
|
||||
_dst.create( src.size(), src.type() );
|
||||
CvMat c_src = src, c_dst = _dst.getMat();
|
||||
cvLinearPolar( &c_src, &c_dst, center, maxRadius, flags );
|
||||
}
|
||||
|
||||
/* End of file. */
|
||||
|
23
samples/python2/logpolar.py
Normal file
23
samples/python2/logpolar.py
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python
|
||||
import cv2
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
try:
|
||||
fn = sys.argv[1]
|
||||
except:
|
||||
fn = '../cpp/fruits.jpg'
|
||||
|
||||
img = cv2.imread(fn)
|
||||
if img is None:
|
||||
print 'Failed to load image file:', fn
|
||||
sys.exit(1)
|
||||
|
||||
img2 = cv2.logPolar(img, (img.shape[0]/2, img.shape[1]/2), 40, cv2.WARP_FILL_OUTLIERS)
|
||||
img3 = cv2.linearPolar(img, (img.shape[0]/2, img.shape[1]/2), 40, cv2.WARP_FILL_OUTLIERS)
|
||||
|
||||
cv2.imshow('before', img)
|
||||
cv2.imshow('logpolar', img2)
|
||||
cv2.imshow('linearpolar', img3)
|
||||
|
||||
cv2.waitKey(0)
|
Loading…
Reference in New Issue
Block a user