Ссылка Свертки vImage
Функции свертки реализуют различные методы для сглаживания или увеличения резкости изображения путем замены пикселя взвешенной суммой себя и соседних пикселей. Свертка изображения не изменяет размер изображения.
Каждая функция свертки требует, чтобы Вы передали ее ядро свертки, определяющее, как значения соседних пикселей используются для вычислений значения целевого пикселя. Ядро является упакованным массивом, не дополняя в концах строк. Элементы массива должны иметь тип uint8_t (для Planar8 и форматов ARGB8888) или типа float (для PlanarF и форматов ARGBFFFF). Высота и ширина массива должны оба быть нечетными числами.
Например, 3 x 3 ядра свертки для изображения Planar8 состоят из девяти 8-разрядных (1-байтовых) значений, расположенных последовательно. Первые три значения представляют первую строку ядра, следующие три значения вторая строка и последние три значения третья строка.
Как правило, Вы используете нормализованные значения для ядра свертки. Для форматов с плавающей точкой это означает, что сумма элементов ядра 1.0. Для целочисленных форматов сумма элементов ядра, разделенного на данный делитель, равняется 1. Ненормализованное ядро или освещает или затемняет изображение.
Для целочисленных форматов сумма любого подмножества элементов ядра должна быть в диапазоне –224 к 224 – 1, включительно для предотвращения целочисленного переполнения. Если Ваше ядро не встречает это ограничение, или использует формат с плавающей точкой или масштабирует ядро для использования меньших значений.
Функция свертки преобразовывает исходное изображение следующим образом:
Помещает ядро по изображению так, чтобы центральный элемент ядра нашелся по исходному пикселю.
Для форматов с плавающей точкой, выполняет это вычисление:
Для целочисленных форматов, выполняет это вычисление:
Присваивает результат целевому пикселю.
Если изображение находится в планарном формате, работа свертки использует одноканальные значения пикселей непосредственно. Если изображение находится в чередованном формате, работа свертки обрабатывает каждый канал (альфа, красная, зеленая, и синяя) отдельно. В обоих планарный и чередованный формат само ядро является всегда планарным.
Когда пиксель, который будет преобразован, около края изображения — не просто область интереса, но всем изображением которого это - часть — ядро может расшириться вне края изображения, так, чтобы не было никаких существующих пикселей ниже некоторых элементов ядра. В этих случаях необходимо передать флаг, указывающий метод для функции свертки для использования: kvImageCopyInPlace, kvImageBackgroundColorFill, kvImageEdgeExtend, и kvImageTruncateKernel. Для обсуждения этих опций см. vImage Ссылку Типов данных и Констант.
-
vImageRichardsonLucyDeConvolve_ARGBFFFF (_: _: _: _: _: _: _: _: _: _: _: _: _: _:) vImageRichardsonLucyDeConvolve_ARGBFFFFУвеличивает резкость изображения ARGBFFFF путем отмены предыдущей свертки, размывшей изображение, такое как дифракционные эффекты в объективе фотокамеры.
Объявление
Swift
func vImageRichardsonLucyDeConvolve_ARGBFFFF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Float>, _kernel2: UnsafePointer<Float>, _kernel_height: UInt32, _kernel_width: UInt32, _kernel_height2: UInt32, _kernel_width2: UInt32, _backgroundColor: UnsafeMutablePointer<Float>, _iterationCount: UInt32, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageRichardsonLucyDeConvolve_ARGBFFFF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernel, const float *kernel2, uint32_t kernel_height, uint32_t kernel_width, uint32_t kernel_height2, uint32_t kernel_width2, Pixel_FFFF backgroundColor, uint32_t iterationCount, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра развертки, которые должны быть упакованным массивом без любого дополнения. Ядро выражает размывающуюся свертку или функцию рассеяния точки.
kernel2Указатель на данные второго ядра, которое должно быть упакованным массивом без любого дополнения. Предоставьте это ядро, только если первое ядро асимметрично; иначе передача
NULL.kernel_heightВысота первого ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина первого ядра в пикселях. Это значение должно быть нечетным.
kernel_height2Высота второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.kernel_width2Ширина второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.iterationCountЧисло раз для итерации алгоритма развертки.
flagsОпции использовать при выполнении работы развертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция выполняет развертку Ричардсона-Люси области интереса в исходном изображении M x N ядро, выполняя конкретное количество итераций и помещая результат в целевой буфер.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
vImageRichardsonLucyDeConvolve_ARGB8888 (_: _: _: _: _: _: _: _: _: _: _: _: _: _: _: _:) vImageRichardsonLucyDeConvolve_ARGB8888Увеличивает резкость изображения ARGB8888 путем отмены предыдущей свертки, размывшей изображение, такое как дифракционные эффекты в объективе фотокамеры.
Объявление
Swift
func vImageRichardsonLucyDeConvolve_ARGB8888(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Int16>, _kernel2: UnsafePointer<Int16>, _kernel_height: UInt32, _kernel_width: UInt32, _kernel_height2: UInt32, _kernel_width2: UInt32, _divisor: Int32, _divisor2: Int32, _backgroundColor: UnsafeMutablePointer<UInt8>, _iterationCount: UInt32, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageRichardsonLucyDeConvolve_ARGB8888 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernel, const int16_t *kernel2, uint32_t kernel_height, uint32_t kernel_width, uint32_t kernel_height2, uint32_t kernel_width2, int32_t divisor, int32_t divisor2, Pixel_8888 backgroundColor, uint32_t iterationCount, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра развертки, которые должны быть упакованным массивом без любого дополнения. Ядро выражает размывающуюся свертку или функцию рассеяния точки.
kernel2Указатель на данные второго ядра, которое должно быть упакованным массивом без любого дополнения. Предоставьте это ядро, только если первое ядро асимметрично; иначе передача
NULL.kernel_heightВысота первого ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина первого ядра в пикселях. Это значение должно быть нечетным.
kernel_height2Высота второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.kernel_width2Ширина второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.divisorДелитель, который будет использоваться в свертках с первым ядром.
divisor2Делитель, который будет использоваться в свертках со вторым ядром.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.iterationCountЧисло раз для итерации алгоритма развертки.
flagsОпции использовать при выполнении работы развертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция выполняет развертку Ричардсона-Люси области интереса в исходном изображении M x N ядро, выполняя конкретное количество итераций и помещая результат в целевой буфер.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
vImageRichardsonLucyDeConvolve_PlanarF (_: _: _: _: _: _: _: _: _: _: _: _: _: _:) vImageRichardsonLucyDeConvolve_PlanarFУвеличивает резкость изображения PlanarF путем отмены предыдущей свертки, размывшей изображение, такое как дифракционные эффекты в объективе фотокамеры.
Объявление
Swift
func vImageRichardsonLucyDeConvolve_PlanarF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Float>, _kernel2: UnsafePointer<Float>, _kernel_height: UInt32, _kernel_width: UInt32, _kernel_height2: UInt32, _kernel_width2: UInt32, _backgroundColor: Pixel_F, _iterationCount: UInt32, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageRichardsonLucyDeConvolve_PlanarF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernel, const float *kernel2, uint32_t kernel_height, uint32_t kernel_width, uint32_t kernel_height2, uint32_t kernel_width2, Pixel_F backgroundColor, uint32_t iterationCount, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра развертки, которые должны быть упакованным массивом без любого дополнения. Ядро выражает размывающуюся свертку или функцию рассеяния точки.
kernel2Указатель на данные второго ядра, которое должно быть упакованным массивом без любого дополнения. Предоставьте это ядро, только если первое ядро асимметрично; иначе передача
NULL.kernel_heightВысота первого ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина первого ядра в пикселях. Это значение должно быть нечетным.
kernel_height2Высота второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.kernel_width2Ширина второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.iterationCountЧисло раз для итерации алгоритма развертки.
flagsОпции использовать при выполнении работы развертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Функция выполняет развертку Ричардсона-Люси области интереса в исходном изображении M x N ядро, выполняя конкретное количество итераций и помещая результат в целевой буфер.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
vImageRichardsonLucyDeConvolve_Planar8 (_: _: _: _: _: _: _: _: _: _: _: _: _: _: _: _:) vImageRichardsonLucyDeConvolve_Planar8Увеличивает резкость изображения Planar8 путем отмены предыдущей свертки, размывшей изображение, такое как дифракционные эффекты в объективе фотокамеры.
Объявление
Swift
func vImageRichardsonLucyDeConvolve_Planar8(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Int16>, _kernel2: UnsafePointer<Int16>, _kernel_height: UInt32, _kernel_width: UInt32, _kernel_height2: UInt32, _kernel_width2: UInt32, _divisor: Int32, _divisor2: Int32, _backgroundColor: Pixel_8, _iterationCount: UInt32, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageRichardsonLucyDeConvolve_Planar8 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernel, const int16_t *kernel2, uint32_t kernel_height, uint32_t kernel_width, uint32_t kernel_height2, uint32_t kernel_width2, int32_t divisor, int32_t divisor2, Pixel_8 backgroundColor, uint32_t iterationCount, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра развертки, которые должны быть упакованным массивом без любого дополнения. Ядро выражает размывающуюся свертку или функцию рассеяния точки.
kernel2Указатель на данные второго ядра, которое должно быть упакованным массивом без любого дополнения. Предоставьте это ядро, только если первое ядро асимметрично; иначе передача
NULL.kernel_heightВысота первого ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина первого ядра в пикселях. Это значение должно быть нечетным.
kernel_height2Высота второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.kernel_width2Ширина второго ядра в пикселях (проигнорированный, если
kernel2NULL). Это значение должно быть нечетным.divisorДелитель, который будет использоваться в свертках с первым ядром.
divisor2Делитель, который будет использоваться в свертках со вторым ядром.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.iterationCountЧисло раз для итерации алгоритма развертки.
flagsОпции использовать при выполнении работы развертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция выполняет развертку Ричардсона-Люси области интереса в исходном изображении M x N ядро, выполняя конкретное количество итераций и помещая результат в целевой буфер.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Скручивает область интереса в исходном изображении ARGBFFFF M x N ядро.
Объявление
Swift
func vImageConvolve_ARGBFFFF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Float>, _kernel_height: UInt32, _kernel_width: UInt32, _backgroundColor: UnsafeMutablePointer<Float>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolve_ARGBFFFF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernel, uint32_t kernel_height, uint32_t kernel_width, Pixel_FFFF backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении. смещения к точке в исходном изображении для определения верхней левой точки области интереса.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.3 и позже.
-
Скручивает область интереса в исходном изображении M x N ядро, затем делит пиксельные значения на делитель.
Объявление
Swift
func vImageConvolve_ARGB8888(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Int16>, _kernel_height: UInt32, _kernel_width: UInt32, _divisor: Int32, _backgroundColor: UnsafeMutablePointer<UInt8>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolve_ARGB8888 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernel, uint32_t kernel_height, uint32_t kernel_width, int32_t divisor, Pixel_8888 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
divisorЗначение для деления результатов свертки. Это обычно используется для нормализации.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.3 и позже.
-
Скручивает область интереса в исходном изображении M x N ядро.
Объявление
Swift
func vImageConvolve_PlanarF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Float>, _kernel_height: UInt32, _kernel_width: UInt32, _backgroundColor: Pixel_F, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolve_PlanarF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernel, uint32_t kernel_height, uint32_t kernel_width, Pixel_F backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.3 и позже.
-
Скручивает область интереса в исходном изображении M x N ядро, затем делит пиксельные значения на делитель.
Объявление
Swift
func vImageConvolve_Planar8(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Int16>, _kernel_height: UInt32, _kernel_width: UInt32, _divisor: Int32, _backgroundColor: Pixel_8, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolve_Planar8 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernel, uint32_t kernel_height, uint32_t kernel_width, int32_t divisor, Pixel_8 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
divisorЗначение для деления результатов свертки с. Это обычно используется для нормализации.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.3 и позже.
-
vImageConvolveWithBias_ARGB8888 (_: _: _: _: _: _: _: _: _: _: _: _:) vImageConvolveWithBias_ARGB8888Скручивает область интереса в исходном изображении ARGB8888 M x N ядро, затем нормализует пиксельные значения.
Объявление
Swift
func vImageConvolveWithBias_ARGB8888(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Int16>, _kernel_height: UInt32, _kernel_width: UInt32, _divisor: Int32, _bias: Int32, _backgroundColor: UnsafeMutablePointer<UInt8>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolveWithBias_ARGB8888 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernel, uint32_t kernel_height, uint32_t kernel_width, int32_t divisor, int32_t bias, Pixel_8888 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
divisorЗначение, в целях нормализации, для деления на результаты свертки.
biasЗначение, чтобы добавить к каждому элементу в результате свертки, прежде, чем применить делитель или выполнить любое отсечение.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Скручивает область интереса в исходном изображении PlanarF M x N ядро.
Объявление
Swift
func vImageConvolveWithBias_PlanarF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Float>, _kernel_height: UInt32, _kernel_width: UInt32, _bias: Float, _backgroundColor: Pixel_F, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolveWithBias_PlanarF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernel, uint32_t kernel_height, uint32_t kernel_width, float bias, Pixel_F backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
biasЗначение, чтобы добавить к каждому элементу в результате свертки, прежде, чем выполнить любое отсечение.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Скручивает область интереса в исходном изображении Planar8 M x N ядро, затем нормализует пиксельные значения.
Объявление
Swift
func vImageConvolveWithBias_Planar8(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Int16>, _kernel_height: UInt32, _kernel_width: UInt32, _divisor: Int32, _bias: Int32, _backgroundColor: Pixel_8, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolveWithBias_Planar8 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernel, uint32_t kernel_height, uint32_t kernel_width, int32_t divisor, int32_t bias, Pixel_8 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
divisorЗначение, в целях нормализации, для деления на результаты свертки.
biasЗначение, чтобы добавить к каждому элементу в результате свертки, прежде, чем применить делитель или выполнить любое отсечение.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Скручивает область интереса в исходном изображении ARGBFFFF M x N ядро.
Объявление
Swift
func vImageConvolveWithBias_ARGBFFFF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel: UnsafePointer<Float>, _kernel_height: UInt32, _kernel_width: UInt32, _bias: Float, _backgroundColor: UnsafeMutablePointer<Float>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolveWithBias_ARGBFFFF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernel, uint32_t kernel_height, uint32_t kernel_width, float bias, Pixel_FFFF backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelУказатель на данные ядра свертки, которые должны быть упакованным массивом без любого дополнения.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
biasЗначение, чтобы добавить к каждому элементу в результате свертки, прежде, чем выполнить любое отсечение.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
vImageConvolveMultiKernel_ARGBFFFF (_: _: _: _: _: _: _: _: _: _: _:) vImageConvolveMultiKernel_ARGBFFFFСкручивает каждый канал области интереса в исходном изображении ARGBFFFF одним из четырех M x N ядра.
Объявление
Swift
func vImageConvolveMultiKernel_ARGBFFFF(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernels: UnsafeMutablePointer<UnsafePointer<Float>>, _kernel_height: UInt32, _kernel_width: UInt32, _biases: UnsafePointer<Float>, _backgroundColor: UnsafeMutablePointer<Float>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolveMultiKernel_ARGBFFFF ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const float *kernels[4], uint32_t kernel_height, uint32_t kernel_width, const float biases[4], Pixel_FFFF backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelsМассив указателей на данные для четырех ядер. Первое ядро для альфа-канала, второго для красного, третьего для зеленого и четвертого для синего. Данные для каждого ядра являются упакованным массивом значений с плавающей точкой.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
biasesМассив четырех значений, которые будут добавлены к каждому элементу свертки, заканчивается для одного канала перед отсечением. Первое значение для альфа-канала, второго для красного, третьего для зеленого и четвертого для синего
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
vImageConvolveMultiKernel_ARGB8888 (_: _: _: _: _: _: _: _: _: _: _: _:) vImageConvolveMultiKernel_ARGB8888Скручивает каждый канал области интереса в исходном изображении ARGB8888 одним из четырех M x N ядра, затем делит пиксельные значения на один из этих четырех делителей.
Объявление
Swift
func vImageConvolveMultiKernel_ARGB8888(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernels: UnsafeMutablePointer<UnsafePointer<Int16>>, _kernel_height: UInt32, _kernel_width: UInt32, _divisors: UnsafePointer<Int32>, _biases: UnsafePointer<Int32>, _backgroundColor: UnsafeMutablePointer<UInt8>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageConvolveMultiKernel_ARGB8888 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, const int16_t *kernels[4], uint32_t kernel_height, uint32_t kernel_width, const int32_t divisors[4], const int32_t biases[4], Pixel_8888 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernelsМассив указателей на данные для четырех ядер. Первое ядро для альфа-канала, второго для красного, третьего для зеленого и четвертого для синего. Данные для каждого ядра являются упакованным массивом целочисленных значений.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
divisorsМассив значений, в целях нормализации, для деления на результаты свертки. Предоставьте одно значение для каждого канала.
biasesМассив четырех значений, которые будут добавлены к каждому элементу свертки, заканчивается для одного канала перед отсечением. Первое значение для альфа-канала, второго для красного, третьего для зеленого и четвертого для синего
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Скручивает область интереса в исходном изображении Planar8 неявным M x N ядро, имеющее эффект фильтра поля.
Объявление
Swift
func vImageBoxConvolve_Planar8(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel_height: UInt32, _kernel_width: UInt32, _backgroundColor: Pixel_8, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageBoxConvolve_Planar8 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, uint32_t kernel_height, uint32_t kernel_width, Pixel_8 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция использует неявный делитель и неявное ядро указанного размера вместо ядра, предоставленного вызывающей стороной.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
-
Скручивает область интереса в исходном изображении ARGB8888 неявным M x N ядро, имеющее эффект фильтра поля.
Объявление
Swift
func vImageBoxConvolve_ARGB8888(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel_height: UInt32, _kernel_width: UInt32, _backgroundColor: UnsafeMutablePointer<UInt8>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageBoxConvolve_ARGB8888 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, uint32_t kernel_height, uint32_t kernel_width, Pixel_8888 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция использует неявный делитель и неявное ядро указанного размера вместо ядра, предоставленного вызывающей стороной.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
-
Скручивает область интереса в исходном изображении Planar8 неявным M x N ядро, имеющее эффект фильтра палатки.
Объявление
Swift
func vImageTentConvolve_Planar8(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel_height: UInt32, _kernel_width: UInt32, _backgroundColor: Pixel_8, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageTentConvolve_Planar8 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, uint32_t kernel_height, uint32_t kernel_width, Pixel_8 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память.. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция использует неявный делитель и неявное ядро указанного размера вместо ядра, предоставленного вызывающей стороной.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
-
Скручивает область интереса в исходном изображении ARGB8888 неявным M x N ядро, имеющее эффект фильтра палатки.
Объявление
Swift
func vImageTentConvolve_ARGB8888(_src: UnsafePointer<vImage_Buffer>, _dest: UnsafePointer<vImage_Buffer>, _tempBuffer: UnsafeMutablePointer<Void>, _srcOffsetToROI_X: vImagePixelCount, _srcOffsetToROI_Y: vImagePixelCount, _kernel_height: UInt32, _kernel_width: UInt32, _backgroundColor: UnsafeMutablePointer<UInt8>, _flags: vImage_Flags) -> vImage_ErrorObjective C
vImage_Error vImageTentConvolve_ARGB8888 ( const vImage_Buffer *src, const vImage_Buffer *dest, void *tempBuffer, vImagePixelCount srcOffsetToROI_X, vImagePixelCount srcOffsetToROI_Y, uint32_t kernel_height, uint32_t kernel_width, Pixel_8888 backgroundColor, vImage_Flags flags );Параметры
srcУказатель на vImage буферизует структуру, содержащую данные для исходного изображения.
destУказатель на vImage буферизует структуру данных. Вы ответственны за заполнение
height,width, иrowBytesполя этой структуры, и для выделения буфера данных надлежащего размера. По возврату буфер данных, на который указывает эта структура, содержит данные конечного изображения. Когда Вам больше не нужен буфер данных, необходимо освободить память. Размер (число строк и число столбцов) целевого буфера также указывает размер области интереса к исходному буферу.tempBufferУказатель на временный буфер. Если Вы передаете
NULL, функция выделяет буфер, затем освобождает его перед возвратом. Также можно выделить буфер сами, когда Вы ответственны за освобождение его, когда Вы больше не потребность он.Если Вы хотите выделить буфер сами, посмотрите Обсуждение для получения информации о том, как определить минимальный размер, который необходимо выделить.
srcOffsetToROI_XГоризонтальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
srcOffsetToROI_YВертикальное смещение, в пикселях, к верхнему левому пикселю области интереса в исходном изображении.
kernel_heightВысота ядра в пикселях. Это значение должно быть нечетным.
kernel_widthШирина ядра в пикселях. Это значение должно быть нечетным.
backgroundColorЦвет фона. При предоставлении цвета необходимо также установить
kvImageBackgroundColorFillфлаг, иначе функция игнорирует цвет.flagsОпции использовать при выполнении работы свертки. Необходимо установить точно один из следующих флагов, чтобы указать, как vImage обрабатывает пиксельные расположения вне края исходного изображения:
kvImageCopyInPlace,kvImageTruncateKernel,kvImageBackgroundColorFill, илиkvImageEdgeExtend.Установите
kvImageDoNotTileотметьте, если Вы планируете выполнить свою собственную многопоточность мозаичного размещения или использования.Возвращаемое значение
kvImageNoError, иначе это возвращает один из кодов ошибки, описанных в vImage Ссылке Типов данных и Констант.Обсуждение
Эта функция использует неявный делитель и неявное ядро указанного размера вместо ядра, предоставленного вызывающей стороной.
Если Вы хотите выделить память для
tempBufferпараметр самостоятельно, вызовите эту функцию дважды, следующим образом:Для определения минимального размера для временного буфера в первый раз, Вы вызываете эту функциональную передачу
kvImageGetTempBufferSizeфлаг. Передайте те же значения для всех других параметров, в которых Вы намереваетесь использовать для второго вызова. Функция возвращает требуемый минимальный размер, который должен быть положительным значением. (Отрицательное возвращенное значение указывает ошибку.)kvImageGetTempBufferSizeфлаг препятствует тому, чтобы функция выполнила любую обработку кроме определить минимальный размер буфера.После того, как Вы выделяете достаточно площади для буфера возвращенного размера, вызываете функцию во второй раз, передавая допустимый указатель в
tempBufferпараметр. На сей раз не передавайтеkvImageGetTempBufferSizeфлаг.
Оператор импорта
Objective C
@import Accelerate;Swift
import AccelerateДоступность
Доступный в OS X v10.4 и позже.
-
vImageGetMinimumTempBufferSizeForConvolution vImageGetMinimumTempBufferSizeForConvolution(OS X v10.4)Возвращает минимальный размер, в байтах, для временного буфера, который вызывающая сторона предоставляет к любой из функций свертки.
Оператор осуждения
Используйте
kvImageGetTempBufferSizeфлаг с надлежащей сверткой функционирует вместо того, чтобы вызвать эту функцию.Объявление
Objective C
size_t vImageGetMinimumTempBufferSizeForConvolution ( const vImage_Buffer *src, const vImage_Buffer *dest, uint32_t kernel_height, uint32_t kernel_width, vImage_Flags flags, size_t bytesPerPixel );Параметры
srcУказатель на vImage буферизует структуру, которую Вы планируете передать функции свертки.
destУказатель на vImage буферизует структуру, которую Вы планируете передать функции свертки.
kernel_heightВысота, в пикселях, ядра, которое Вы планируете использовать в функции свертки.
kernel_widthШирина, в пикселях, ядра, которое Вы планируете использовать в функции свертки.
flagsФлаги, которые Вы планируете передать функции свертки.
bytesPerPixelЧисло байтов в пикселе. Удостоверьтесь, что передали значение, подходящее для формата пикселя.
Возвращаемое значение
Минимальный размер, в байтах, временного буфера.
Обсуждение
Эта функция не зависит от
dataилиrowBytesполяsrcилиdestпараметры; это только используетheightиwidthполя от тех параметров. Если размер изображений, которые Вы обрабатываете, остается то же, то требуемый размер буфера также остается то же. Более в частности, если, между двумя вызовами кvImageGetMinimumTempBufferSizeForConvolution,heightиwidthизsrcиdestпараметры не увеличиваются, и другие параметры остаются тем же, тогда результатvImageGetMinimumTempBufferSizeForConvolutionне увеличивается. Это упрощает снова использовать тот же временный буфер при обработке многих изображений того же размера, как в мозаичном размещении.Оператор импорта
Objective C
@import Accelerate;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.4.
