|
|
|
# Image Decode Implementation with CV2 and nvjpeg
|
|
|
|
|
|
|
|
*author: junjie.jiang*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Description
|
|
|
|
|
|
|
|
An image decode operator implementation with OpenCV and nvjpeg.
|
|
|
|
In CPU env, use OpenCV, in GPU env, use nvjpeg to decode jpeg files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Code Example
|
|
|
|
|
|
|
|
Load a image from path './src_dog.jpg'.
|
|
|
|
|
|
|
|
*Write the pipeline in simplified style:*
|
|
|
|
|
|
|
|
```python
|
|
|
|
from towhee.dc2 import pipe, ops, DataCollection
|
|
|
|
|
|
|
|
|
|
|
|
p = (
|
|
|
|
pipe.input('url')
|
|
|
|
.map('url', 'image', ops.image_decode.nvjpeg())
|
|
|
|
.output('image')
|
|
|
|
)
|
|
|
|
|
|
|
|
DataCollection(p('./src_dog.jpg')).show()
|
|
|
|
```
|
|
|
|
|
|
|
|
<img src="./dog.jpg" height="150px"/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Factory Constructor
|
|
|
|
|
|
|
|
Create the operator via the following factory method:
|
|
|
|
|
|
|
|
***ops.image_decode.nvjpeg()***
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Interface
|
|
|
|
|
|
|
|
An image decode operator takes an image path as input. It decodes the image back to ndarray.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**Parameters:**
|
|
|
|
|
|
|
|
**img**: *str*
|
|
|
|
|
|
|
|
Local file path or http url.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**Returns**: *towhee.types.Image (a sub-class of numpy.ndarray)*
|
|
|
|
|
|
|
|
The decoded image data as numpy.ndarray.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|