fill_interlacefill_interlaceFillInterlaceFillInterlacefill_interlace (算子)

名称

fill_interlacefill_interlaceFillInterlaceFillInterlacefill_interlace — 插值 2 个视频半图像。

签名

fill_interlace(ImageCamera : ImageFilled : Mode : )

Herror fill_interlace(const Hobject ImageCamera, Hobject* ImageFilled, const char* Mode)

Herror T_fill_interlace(const Hobject ImageCamera, Hobject* ImageFilled, const Htuple Mode)

void FillInterlace(const HObject& ImageCamera, HObject* ImageFilled, const HTuple& Mode)

HImage HImage::FillInterlace(const HString& Mode) const

HImage HImage::FillInterlace(const char* Mode) const

HImage HImage::FillInterlace(const wchar_t* Mode) const   ( Windows only)

static void HOperatorSet.FillInterlace(HObject imageCamera, out HObject imageFilled, HTuple mode)

HImage HImage.FillInterlace(string mode)

def fill_interlace(image_camera: HObject, mode: str) -> HObject

描述

算子 fill_interlacefill_interlaceFillInterlaceFillInterlaceFillInterlacefill_interlace calculates an interpolated full image or removes odd/even lines from a video image composed of two half images. If an image is recorded with a video camera it consists of two half images recorded at different times but stored in one image in the digital form. This can lead to several errors in further processing. In order to reduce these errors the video image is modified. Every second line is re-calculated or removed. The parameter ModeModeModeModemodemode determines whether this must be done for even ('even'"even""even""even""even""even", 'rmeven'"rmeven""rmeven""rmeven""rmeven""rmeven") or odd ('odd'"odd""odd""odd""odd""odd", 'rmodd'"rmodd""rmodd""rmodd""rmodd""rmodd") line numbers. If you choose 'even'"even""even""even""even""even" or 'odd'"odd""odd""odd""odd""odd" the gray values in the generated lines are calculated as mean values from the direct neighbors above or below the current pixel, respectively. If you choose 'rmeven'"rmeven""rmeven""rmeven""rmeven""rmeven" or 'rmodd'"rmodd""rmodd""rmodd""rmodd""rmodd" the even or odd lines numbers are removed (in that case the resulting image is only half as high as the input image). The value 'switch'"switch""switch""switch""switch""switch" for ModeModeModeModemodemode cause the odd and even lines to be exchanged.

有关平滑滤波器概念的说明,请参阅 滤波器 / 平滑 一章的引言。

注意

请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章

执行信息

参数

ImageCameraImageCameraImageCameraImageCameraimageCameraimage_camera (输入对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / uint2)

Gray image consisting of two half images.

ImageFilledImageFilledImageFilledImageFilledimageFilledimage_filled (输出对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / uint2)

Full image with interpolated/removed lines.

ModeModeModeModemodemode (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Instruction whether even or odd lines should be replaced/removed.

默认值: 'odd' "odd" "odd" "odd" "odd" "odd"

值列表: 'even'"even""even""even""even""even", 'odd'"odd""odd""odd""odd""odd", 'rmeven'"rmeven""rmeven""rmeven""rmeven""rmeven", 'rmodd'"rmodd""rmodd""rmodd""rmodd""rmodd", 'switch'"switch""switch""switch""switch""switch"

示例(HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

示例(C)

read_image(&Image,"video_image");
fill_interlace(Image,&New,"odd");
sobel_amp(New,&Sobel,"sum_abs",3);

示例(HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

示例(HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

示例(HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

复杂度

For each pixel: O(2).

结果

如果参数值正确,算子 fill_interlacefill_interlaceFillInterlaceFillInterlaceFillInterlacefill_interlace 返回值 2 ( H_MSG_TRUE )。当输入为空(无可用输入图像)时可设置行为通过算子 set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。

可能的前趋

read_imageread_imageReadImageReadImageReadImageread_image, grab_imagegrab_imageGrabImageGrabImageGrabImagegrab_image

可能的后继

sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, diff_of_gaussdiff_of_gaussDiffOfGaussDiffOfGaussDiffOfGaussdiff_of_gauss, thresholdthresholdThresholdThresholdThresholdthreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold, auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusionanisotropic_diffusion, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image, median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image

另见

median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, crop_partcrop_partCropPartCropPartCropPartcrop_part

模块

基础