| 
									
										
										
										
											2019-06-06 15:21:15 +03:00
										 |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  |  * Copyright (c) 2015-2018 Skymind, Inc. | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |  * Copyright (c) 2019 Konduit K.K. | 
					
						
							| 
									
										
										
										
											2019-06-06 15:21:15 +03:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This program and the accompanying materials are made available under the | 
					
						
							|  |  |  |  * terms of the Apache License, Version 2.0 which is available at | 
					
						
							|  |  |  |  * https://www.apache.org/licenses/LICENSE-2.0.
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
					
						
							|  |  |  |  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
					
						
							|  |  |  |  * License for the specific language governing permissions and limitations | 
					
						
							|  |  |  |  * under the License. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: Apache-2.0 | 
					
						
							|  |  |  |  ******************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //  @author sgazeos@gmail.com
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | #ifndef __IMAGE_RESIZE_HELPERS__
 | 
					
						
							|  |  |  | #define __IMAGE_RESIZE_HELPERS__
 | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  | #include <system/op_boilerplate.h>
 | 
					
						
							|  |  |  | #include <array/NDArray.h>
 | 
					
						
							| 
									
										
										
										
											2019-06-06 15:21:15 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  | namespace sd { | 
					
						
							| 
									
										
										
										
											2019-06-06 15:21:15 +03:00
										 |  |  | namespace ops { | 
					
						
							|  |  |  | namespace helpers { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |     enum ImageResizeMethods { | 
					
						
							| 
									
										
										
										
											2020-05-27 21:15:03 +03:00
										 |  |  |         kResizeBilinear = 0, // as java require
 | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |         kResizeNearest, | 
					
						
							| 
									
										
										
										
											2020-05-27 21:15:03 +03:00
										 |  |  |         kResizeBicubic, | 
					
						
							|  |  |  |         kResizeArea, | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |         kResizeGaussian, | 
					
						
							| 
									
										
										
										
											2020-05-27 21:15:03 +03:00
										 |  |  |         kResizeLanczos3, | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |         kResizeLanczos5, | 
					
						
							| 
									
										
										
										
											2020-05-27 21:15:03 +03:00
										 |  |  |         kResizeMitchellcubic, | 
					
						
							|  |  |  |         kResizeFirst = kResizeBilinear, | 
					
						
							|  |  |  |         kResizeLast = kResizeMitchellcubic, | 
					
						
							|  |  |  |         kResizeOldLast = kResizeArea | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  |     int resizeBilinearFunctor(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							| 
									
										
										
										
											2019-12-06 11:10:44 +03:00
										 |  |  |             bool const alignCorners, bool const halfPixelCenter, NDArray* output); | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  |     int resizeNeighborFunctor(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							| 
									
										
										
										
											2019-12-06 11:10:44 +03:00
										 |  |  |             bool const alignCorners, bool const halfPixelCenter, NDArray* output); | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  |     int resizeBicubicFunctor(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							| 
									
										
										
										
											2019-11-19 22:44:29 +11:00
										 |  |  |                       bool preserveAspectRatio, bool antialias, NDArray* output); | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  |     int resizeBicubicFunctorA(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							| 
									
										
										
										
											2019-11-20 21:11:04 +02:00
										 |  |  |                              bool const alignCorners, bool const halfPixelAlign, NDArray* output); | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  |     int resizeAreaFunctor(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							| 
									
										
										
										
											2020-01-22 09:46:33 +02:00
										 |  |  |                              bool const alignCorners, NDArray* output); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-02 12:49:41 +03:00
										 |  |  |     int resizeFunctor(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							| 
									
										
										
										
											2020-05-27 21:15:03 +03:00
										 |  |  |             ImageResizeMethods method, bool antialias, NDArray* output); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int resizeImagesFunctor(sd::LaunchContext * context, NDArray const* image, int const width, int const height, | 
					
						
							|  |  |  |                       ImageResizeMethods method, bool alignCorners, NDArray* output); | 
					
						
							| 
									
										
										
										
											2019-06-06 15:21:15 +03:00
										 |  |  | } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |