Documentation ¶
Overview ¶
Integrates Google Vision features, including image labeling, face, logo, and landmark detection, optical character recognition (OCR), and detection of explicit content, into applications.
Index ¶
- func DefaultAuthScopes() []string
- func NewImageFromReader(r io.Reader) (*pb.Image, error)
- func NewImageFromURI(uri string) *pb.Image
- type AsyncBatchAnnotateFilesOperation
- func (op *AsyncBatchAnnotateFilesOperation) Done() bool
- func (op *AsyncBatchAnnotateFilesOperation) Metadata() (*visionpb.OperationMetadata, error)
- func (op *AsyncBatchAnnotateFilesOperation) Name() string
- func (op *AsyncBatchAnnotateFilesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionpb.AsyncBatchAnnotateFilesResponse, error)
- func (op *AsyncBatchAnnotateFilesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionpb.AsyncBatchAnnotateFilesResponse, error)
- type Chin
- type Ears
- type Eye
- type Eyebrow
- type Eyebrows
- type Eyes
- type FaceLandmarks
- type ImageAnnotatorCallOptions
- type ImageAnnotatorClient
- func (c *ImageAnnotatorClient) AnnotateImage(ctx context.Context, req *pb.AnnotateImageRequest, opts ...gax.CallOption) (*pb.AnnotateImageResponse, error)
- func (c *ImageAnnotatorClient) AsyncBatchAnnotateFiles(ctx context.Context, req *visionpb.AsyncBatchAnnotateFilesRequest, ...) (*AsyncBatchAnnotateFilesOperation, error)
- func (c *ImageAnnotatorClient) AsyncBatchAnnotateFilesOperation(name string) *AsyncBatchAnnotateFilesOperation
- func (c *ImageAnnotatorClient) BatchAnnotateImages(ctx context.Context, req *visionpb.BatchAnnotateImagesRequest, ...) (*visionpb.BatchAnnotateImagesResponse, error)
- func (c *ImageAnnotatorClient) Close() error
- func (c *ImageAnnotatorClient) Connection() *grpc.ClientConn
- func (c *ImageAnnotatorClient) CropHints(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) (*pb.CropHintsAnnotation, error)
- func (c *ImageAnnotatorClient) DetectDocumentText(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) (*pb.TextAnnotation, error)
- func (c *ImageAnnotatorClient) DetectFaces(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, ...) ([]*pb.FaceAnnotation, error)
- func (c *ImageAnnotatorClient) DetectImageProperties(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) (*pb.ImageProperties, error)
- func (c *ImageAnnotatorClient) DetectLabels(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, ...) ([]*pb.EntityAnnotation, error)
- func (c *ImageAnnotatorClient) DetectLandmarks(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, ...) ([]*pb.EntityAnnotation, error)
- func (c *ImageAnnotatorClient) DetectLogos(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, ...) ([]*pb.EntityAnnotation, error)
- func (c *ImageAnnotatorClient) DetectSafeSearch(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) (*pb.SafeSearchAnnotation, error)
- func (c *ImageAnnotatorClient) DetectTexts(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, ...) ([]*pb.EntityAnnotation, error)
- func (c *ImageAnnotatorClient) DetectWeb(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) (*pb.WebDetection, error)
- func (c *ImageAnnotatorClient) LocalizeObjects(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) ([]*pb.LocalizedObjectAnnotation, error)
- func (c *ImageAnnotatorClient) ProductSearch(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, ...) (*pb.ProductSearchResults, error)
- type ImportProductSetsOperation
- func (op *ImportProductSetsOperation) Done() bool
- func (op *ImportProductSetsOperation) Metadata() (*visionpb.BatchOperationMetadata, error)
- func (op *ImportProductSetsOperation) Name() string
- func (op *ImportProductSetsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionpb.ImportProductSetsResponse, error)
- func (op *ImportProductSetsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionpb.ImportProductSetsResponse, error)
- type Mouth
- type Nose
- type ProductIterator
- type ProductSearchCallOptions
- type ProductSearchClient
- func (c *ProductSearchClient) AddProductToProductSet(ctx context.Context, req *visionpb.AddProductToProductSetRequest, ...) error
- func (c *ProductSearchClient) Close() error
- func (c *ProductSearchClient) Connection() *grpc.ClientConn
- func (c *ProductSearchClient) CreateProduct(ctx context.Context, req *visionpb.CreateProductRequest, ...) (*visionpb.Product, error)
- func (c *ProductSearchClient) CreateProductSet(ctx context.Context, req *visionpb.CreateProductSetRequest, ...) (*visionpb.ProductSet, error)
- func (c *ProductSearchClient) CreateReferenceImage(ctx context.Context, req *visionpb.CreateReferenceImageRequest, ...) (*visionpb.ReferenceImage, error)
- func (c *ProductSearchClient) DeleteProduct(ctx context.Context, req *visionpb.DeleteProductRequest, ...) error
- func (c *ProductSearchClient) DeleteProductSet(ctx context.Context, req *visionpb.DeleteProductSetRequest, ...) error
- func (c *ProductSearchClient) DeleteReferenceImage(ctx context.Context, req *visionpb.DeleteReferenceImageRequest, ...) error
- func (c *ProductSearchClient) GetProduct(ctx context.Context, req *visionpb.GetProductRequest, opts ...gax.CallOption) (*visionpb.Product, error)
- func (c *ProductSearchClient) GetProductSet(ctx context.Context, req *visionpb.GetProductSetRequest, ...) (*visionpb.ProductSet, error)
- func (c *ProductSearchClient) GetReferenceImage(ctx context.Context, req *visionpb.GetReferenceImageRequest, ...) (*visionpb.ReferenceImage, error)
- func (c *ProductSearchClient) ImportProductSets(ctx context.Context, req *visionpb.ImportProductSetsRequest, ...) (*ImportProductSetsOperation, error)
- func (c *ProductSearchClient) ImportProductSetsOperation(name string) *ImportProductSetsOperation
- func (c *ProductSearchClient) ListProductSets(ctx context.Context, req *visionpb.ListProductSetsRequest, ...) *ProductSetIterator
- func (c *ProductSearchClient) ListProducts(ctx context.Context, req *visionpb.ListProductsRequest, opts ...gax.CallOption) *ProductIterator
- func (c *ProductSearchClient) ListProductsInProductSet(ctx context.Context, req *visionpb.ListProductsInProductSetRequest, ...) *ProductIterator
- func (c *ProductSearchClient) ListReferenceImages(ctx context.Context, req *visionpb.ListReferenceImagesRequest, ...) *ReferenceImageIterator
- func (c *ProductSearchClient) RemoveProductFromProductSet(ctx context.Context, req *visionpb.RemoveProductFromProductSetRequest, ...) error
- func (c *ProductSearchClient) UpdateProduct(ctx context.Context, req *visionpb.UpdateProductRequest, ...) (*visionpb.Product, error)
- func (c *ProductSearchClient) UpdateProductSet(ctx context.Context, req *visionpb.UpdateProductSetRequest, ...) (*visionpb.ProductSet, error)
- type ProductSetIterator
- type ReferenceImageIterator
Examples ¶
- ImageAnnotatorClient.AnnotateImage
- ImageAnnotatorClient.AsyncBatchAnnotateFiles
- ImageAnnotatorClient.BatchAnnotateImages
- NewImageAnnotatorClient
- NewProductSearchClient
- ProductSearchClient.AddProductToProductSet
- ProductSearchClient.CreateProduct
- ProductSearchClient.CreateProductSet
- ProductSearchClient.CreateReferenceImage
- ProductSearchClient.DeleteProduct
- ProductSearchClient.DeleteProductSet
- ProductSearchClient.DeleteReferenceImage
- ProductSearchClient.GetProduct
- ProductSearchClient.GetProductSet
- ProductSearchClient.GetReferenceImage
- ProductSearchClient.ImportProductSets
- ProductSearchClient.ListProductSets
- ProductSearchClient.ListProducts
- ProductSearchClient.ListProductsInProductSet
- ProductSearchClient.ListReferenceImages
- ProductSearchClient.RemoveProductFromProductSet
- ProductSearchClient.UpdateProduct
- ProductSearchClient.UpdateProductSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultAuthScopes ¶ added in v0.8.0
func DefaultAuthScopes() []string
DefaultAuthScopes reports the default set of authentication scopes to use with this package.
func NewImageFromReader ¶ added in v0.8.0
NewImageFromReader reads the bytes of an image from r.
func NewImageFromURI ¶ added in v0.8.0
NewImageFromURI returns an image that refers to an object in Google Cloud Storage (when the uri is of the form "gs://BUCKET/OBJECT") or at a public URL.
Types ¶
type AsyncBatchAnnotateFilesOperation ¶ added in v0.26.0
type AsyncBatchAnnotateFilesOperation struct {
// contains filtered or unexported fields
}
AsyncBatchAnnotateFilesOperation manages a long-running operation from AsyncBatchAnnotateFiles.
func (*AsyncBatchAnnotateFilesOperation) Done ¶ added in v0.26.0
func (op *AsyncBatchAnnotateFilesOperation) Done() bool
Done reports whether the long-running operation has completed.
func (*AsyncBatchAnnotateFilesOperation) Metadata ¶ added in v0.26.0
func (op *AsyncBatchAnnotateFilesOperation) Metadata() (*visionpb.OperationMetadata, error)
Metadata returns metadata associated with the long-running operation. Metadata itself does not contact the server, but Poll does. To get the latest metadata, call this method after a successful call to Poll. If the metadata is not available, the returned metadata and error are both nil.
func (*AsyncBatchAnnotateFilesOperation) Name ¶ added in v0.26.0
func (op *AsyncBatchAnnotateFilesOperation) Name() string
Name returns the name of the long-running operation. The name is assigned by the server and is unique within the service from which the operation is created.
func (*AsyncBatchAnnotateFilesOperation) Poll ¶ added in v0.26.0
func (op *AsyncBatchAnnotateFilesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionpb.AsyncBatchAnnotateFilesResponse, error)
Poll fetches the latest state of the long-running operation.
Poll also fetches the latest metadata, which can be retrieved by Metadata.
If Poll fails, the error is returned and op is unmodified. If Poll succeeds and the operation has completed with failure, the error is returned and op.Done will return true. If Poll succeeds and the operation has completed successfully, op.Done will return true, and the response of the operation is returned. If Poll succeeds and the operation has not completed, the returned response and error are both nil.
func (*AsyncBatchAnnotateFilesOperation) Wait ¶ added in v0.26.0
func (op *AsyncBatchAnnotateFilesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionpb.AsyncBatchAnnotateFilesResponse, error)
Wait blocks until the long-running operation is completed, returning the response and any errors encountered.
See documentation of Poll for error-handling information.
type Eyebrows ¶ added in v0.8.0
type Eyebrows struct {
Left, Right Eyebrow
}
Eyebrows represents a face's eyebrows.
type FaceLandmarks ¶ added in v0.8.0
type FaceLandmarks struct { Eyebrows Eyebrows Eyes Eyes Ears Ears Nose Nose Mouth Mouth Chin Chin Forehead *pb.Position }
FaceLandmarks contains the positions of facial features detected by the service.
func FaceFromLandmarks ¶ added in v0.8.0
func FaceFromLandmarks(landmarks []*pb.FaceAnnotation_Landmark) *FaceLandmarks
FaceFromLandmarks converts the list of face landmarks returned by the service to a FaceLandmarks struct.
type ImageAnnotatorCallOptions ¶
type ImageAnnotatorCallOptions struct { BatchAnnotateImages []gax.CallOption AsyncBatchAnnotateFiles []gax.CallOption }
ImageAnnotatorCallOptions contains the retry settings for each method of ImageAnnotatorClient.
type ImageAnnotatorClient ¶
type ImageAnnotatorClient struct { // LROClient is used internally to handle longrunning operations. // It is exposed so that its CallOptions can be modified if required. // Users should not Close this client. LROClient *lroauto.OperationsClient // The call options for this service. CallOptions *ImageAnnotatorCallOptions // contains filtered or unexported fields }
ImageAnnotatorClient is a client for interacting with Cloud Vision API.
Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
func NewImageAnnotatorClient ¶
func NewImageAnnotatorClient(ctx context.Context, opts ...option.ClientOption) (*ImageAnnotatorClient, error)
NewImageAnnotatorClient creates a new image annotator client.
Service that performs Google Cloud Vision API detection tasks over client images, such as face, landmark, logo, label, and text detection. The ImageAnnotator service returns detected entities from the images.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" ) func main() { ctx := context.Background() c, err := vision.NewImageAnnotatorClient(ctx) if err != nil { // TODO: Handle error. } // TODO: Use client. _ = c }
Output:
func (*ImageAnnotatorClient) AnnotateImage ¶ added in v0.8.0
func (c *ImageAnnotatorClient) AnnotateImage(ctx context.Context, req *pb.AnnotateImageRequest, opts ...gax.CallOption) (*pb.AnnotateImageResponse, error)
AnnotateImage runs image detection and annotation for a single image.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" pb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewImageAnnotatorClient(ctx) if err != nil { // TODO: Handle error. } res, err := c.AnnotateImage(ctx, &pb.AnnotateImageRequest{ Image: vision.NewImageFromURI("gs://my-bucket/my-image.png"), Features: []*pb.Feature{ {Type: pb.Feature_LANDMARK_DETECTION, MaxResults: 5}, {Type: pb.Feature_LABEL_DETECTION, MaxResults: 3}, }, }) if err != nil { // TODO: Handle error. } // TODO: Use res. _ = res }
Output:
func (*ImageAnnotatorClient) AsyncBatchAnnotateFiles ¶ added in v0.26.0
func (c *ImageAnnotatorClient) AsyncBatchAnnotateFiles(ctx context.Context, req *visionpb.AsyncBatchAnnotateFilesRequest, opts ...gax.CallOption) (*AsyncBatchAnnotateFilesOperation, error)
AsyncBatchAnnotateFiles run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple images per page. Progress and results can be retrieved through the google.longrunning.Operations interface. Operation.metadata contains OperationMetadata (metadata). Operation.response contains AsyncBatchAnnotateFilesResponse (results).
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewImageAnnotatorClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.AsyncBatchAnnotateFilesRequest{ // TODO: Fill request struct fields. } op, err := c.AsyncBatchAnnotateFiles(ctx, req) if err != nil { // TODO: Handle error. } resp, err := op.Wait(ctx) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ImageAnnotatorClient) AsyncBatchAnnotateFilesOperation ¶ added in v0.26.0
func (c *ImageAnnotatorClient) AsyncBatchAnnotateFilesOperation(name string) *AsyncBatchAnnotateFilesOperation
AsyncBatchAnnotateFilesOperation returns a new AsyncBatchAnnotateFilesOperation from a given name. The name must be that of a previously created AsyncBatchAnnotateFilesOperation, possibly from a different process.
func (*ImageAnnotatorClient) BatchAnnotateImages ¶
func (c *ImageAnnotatorClient) BatchAnnotateImages(ctx context.Context, req *visionpb.BatchAnnotateImagesRequest, opts ...gax.CallOption) (*visionpb.BatchAnnotateImagesResponse, error)
BatchAnnotateImages run image detection and annotation for a batch of images.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewImageAnnotatorClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.BatchAnnotateImagesRequest{ // TODO: Fill request struct fields. } resp, err := c.BatchAnnotateImages(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ImageAnnotatorClient) Close ¶
func (c *ImageAnnotatorClient) Close() error
Close closes the connection to the API service. The user should invoke this when the client is no longer required.
func (*ImageAnnotatorClient) Connection ¶
func (c *ImageAnnotatorClient) Connection() *grpc.ClientConn
Connection returns the client's connection to the API service.
func (*ImageAnnotatorClient) CropHints ¶ added in v0.8.0
func (c *ImageAnnotatorClient) CropHints(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) (*pb.CropHintsAnnotation, error)
CropHints computes crop hints for the image.
func (*ImageAnnotatorClient) DetectDocumentText ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectDocumentText(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) (*pb.TextAnnotation, error)
DetectDocumentText performs full text (OCR) detection on the image.
func (*ImageAnnotatorClient) DetectFaces ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectFaces(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, opts ...gax.CallOption) ([]*pb.FaceAnnotation, error)
DetectFaces performs face detection on the image. At most maxResults results are returned.
func (*ImageAnnotatorClient) DetectImageProperties ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectImageProperties(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) (*pb.ImageProperties, error)
DetectImageProperties computes properties of the image.
func (*ImageAnnotatorClient) DetectLabels ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectLabels(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, opts ...gax.CallOption) ([]*pb.EntityAnnotation, error)
DetectLabels performs label detection on the image. At most maxResults results are returned.
func (*ImageAnnotatorClient) DetectLandmarks ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectLandmarks(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, opts ...gax.CallOption) ([]*pb.EntityAnnotation, error)
DetectLandmarks performs landmark detection on the image. At most maxResults results are returned.
func (*ImageAnnotatorClient) DetectLogos ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectLogos(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, opts ...gax.CallOption) ([]*pb.EntityAnnotation, error)
DetectLogos performs logo detection on the image. At most maxResults results are returned.
func (*ImageAnnotatorClient) DetectSafeSearch ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectSafeSearch(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) (*pb.SafeSearchAnnotation, error)
DetectSafeSearch performs safe-search detection on the image.
func (*ImageAnnotatorClient) DetectTexts ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectTexts(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, maxResults int, opts ...gax.CallOption) ([]*pb.EntityAnnotation, error)
DetectTexts performs text detection on the image. At most maxResults results are returned.
func (*ImageAnnotatorClient) DetectWeb ¶ added in v0.8.0
func (c *ImageAnnotatorClient) DetectWeb(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) (*pb.WebDetection, error)
DetectWeb computes a web annotation on the image.
func (*ImageAnnotatorClient) LocalizeObjects ¶ added in v0.33.1
func (c *ImageAnnotatorClient) LocalizeObjects(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) ([]*pb.LocalizedObjectAnnotation, error)
LocalizeObject runs the localizer for object detection.
func (*ImageAnnotatorClient) ProductSearch ¶ added in v0.33.1
func (c *ImageAnnotatorClient) ProductSearch(ctx context.Context, img *pb.Image, ictx *pb.ImageContext, opts ...gax.CallOption) (*pb.ProductSearchResults, error)
ProductSearch searches the image for products.
type ImportProductSetsOperation ¶ added in v0.33.1
type ImportProductSetsOperation struct {
// contains filtered or unexported fields
}
ImportProductSetsOperation manages a long-running operation from ImportProductSets.
func (*ImportProductSetsOperation) Done ¶ added in v0.33.1
func (op *ImportProductSetsOperation) Done() bool
Done reports whether the long-running operation has completed.
func (*ImportProductSetsOperation) Metadata ¶ added in v0.33.1
func (op *ImportProductSetsOperation) Metadata() (*visionpb.BatchOperationMetadata, error)
Metadata returns metadata associated with the long-running operation. Metadata itself does not contact the server, but Poll does. To get the latest metadata, call this method after a successful call to Poll. If the metadata is not available, the returned metadata and error are both nil.
func (*ImportProductSetsOperation) Name ¶ added in v0.33.1
func (op *ImportProductSetsOperation) Name() string
Name returns the name of the long-running operation. The name is assigned by the server and is unique within the service from which the operation is created.
func (*ImportProductSetsOperation) Poll ¶ added in v0.33.1
func (op *ImportProductSetsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionpb.ImportProductSetsResponse, error)
Poll fetches the latest state of the long-running operation.
Poll also fetches the latest metadata, which can be retrieved by Metadata.
If Poll fails, the error is returned and op is unmodified. If Poll succeeds and the operation has completed with failure, the error is returned and op.Done will return true. If Poll succeeds and the operation has completed successfully, op.Done will return true, and the response of the operation is returned. If Poll succeeds and the operation has not completed, the returned response and error are both nil.
func (*ImportProductSetsOperation) Wait ¶ added in v0.33.1
func (op *ImportProductSetsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionpb.ImportProductSetsResponse, error)
Wait blocks until the long-running operation is completed, returning the response and any errors encountered.
See documentation of Poll for error-handling information.
type ProductIterator ¶ added in v0.33.1
type ProductIterator struct { // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*visionpb.Product, nextPageToken string, err error) // contains filtered or unexported fields }
ProductIterator manages a stream of *visionpb.Product.
func (*ProductIterator) Next ¶ added in v0.33.1
func (it *ProductIterator) Next() (*visionpb.Product, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*ProductIterator) PageInfo ¶ added in v0.33.1
func (it *ProductIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type ProductSearchCallOptions ¶ added in v0.33.1
type ProductSearchCallOptions struct { CreateProduct []gax.CallOption ListProducts []gax.CallOption GetProduct []gax.CallOption UpdateProduct []gax.CallOption DeleteProduct []gax.CallOption ListReferenceImages []gax.CallOption GetReferenceImage []gax.CallOption DeleteReferenceImage []gax.CallOption CreateReferenceImage []gax.CallOption CreateProductSet []gax.CallOption ListProductSets []gax.CallOption GetProductSet []gax.CallOption UpdateProductSet []gax.CallOption DeleteProductSet []gax.CallOption AddProductToProductSet []gax.CallOption RemoveProductFromProductSet []gax.CallOption ListProductsInProductSet []gax.CallOption ImportProductSets []gax.CallOption }
ProductSearchCallOptions contains the retry settings for each method of ProductSearchClient.
type ProductSearchClient ¶ added in v0.33.1
type ProductSearchClient struct { // LROClient is used internally to handle longrunning operations. // It is exposed so that its CallOptions can be modified if required. // Users should not Close this client. LROClient *lroauto.OperationsClient // The call options for this service. CallOptions *ProductSearchCallOptions // contains filtered or unexported fields }
ProductSearchClient is a client for interacting with Cloud Vision API.
Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
func NewProductSearchClient ¶ added in v0.33.1
func NewProductSearchClient(ctx context.Context, opts ...option.ClientOption) (*ProductSearchClient, error)
NewProductSearchClient creates a new product search client.
Manages Products and ProductSets of reference images for use in product search. It uses the following resource model:
The API has a collection of [ProductSet][google.cloud.vision.v1.ProductSet] resources, named projects/*/locations/*/productSets/*, which acts as a way to put different products into groups to limit identification.
In parallel,
The API has a collection of [Product][google.cloud.vision.v1.Product] resources, named projects/*/locations/*/products/* Each [Product][google.cloud.vision.v1.Product] has a collection of [ReferenceImage][google.cloud.vision.v1.ReferenceImage] resources, named projects/*/locations/*/products/*/referenceImages/*
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } // TODO: Use client. _ = c }
Output:
func (*ProductSearchClient) AddProductToProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) AddProductToProductSet(ctx context.Context, req *visionpb.AddProductToProductSetRequest, opts ...gax.CallOption) error
AddProductToProductSet adds a Product to the specified ProductSet. If the Product is already present, no change is made.
One Product can be added to at most 100 ProductSets.
Possible errors:
Returns NOT_FOUND if the Product or the ProductSet doesn't exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.AddProductToProductSetRequest{ // TODO: Fill request struct fields. } err = c.AddProductToProductSet(ctx, req) if err != nil { // TODO: Handle error. } }
Output:
func (*ProductSearchClient) Close ¶ added in v0.33.1
func (c *ProductSearchClient) Close() error
Close closes the connection to the API service. The user should invoke this when the client is no longer required.
func (*ProductSearchClient) Connection ¶ added in v0.33.1
func (c *ProductSearchClient) Connection() *grpc.ClientConn
Connection returns the client's connection to the API service.
func (*ProductSearchClient) CreateProduct ¶ added in v0.33.1
func (c *ProductSearchClient) CreateProduct(ctx context.Context, req *visionpb.CreateProductRequest, opts ...gax.CallOption) (*visionpb.Product, error)
CreateProduct creates and returns a new product resource.
Possible errors:
Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 characters. Returns INVALID_ARGUMENT if description is longer than 4096 characters. Returns INVALID_ARGUMENT if product_category is missing or invalid.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.CreateProductRequest{ // TODO: Fill request struct fields. } resp, err := c.CreateProduct(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) CreateProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) CreateProductSet(ctx context.Context, req *visionpb.CreateProductSetRequest, opts ...gax.CallOption) (*visionpb.ProductSet, error)
CreateProductSet creates and returns a new ProductSet resource.
Possible errors:
Returns INVALID_ARGUMENT if display_name is missing, or is longer than 4096 characters.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.CreateProductSetRequest{ // TODO: Fill request struct fields. } resp, err := c.CreateProductSet(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) CreateReferenceImage ¶ added in v0.33.1
func (c *ProductSearchClient) CreateReferenceImage(ctx context.Context, req *visionpb.CreateReferenceImageRequest, opts ...gax.CallOption) (*visionpb.ReferenceImage, error)
CreateReferenceImage creates and returns a new ReferenceImage resource.
The bounding_poly field is optional. If bounding_poly is not specified, the system will try to detect regions of interest in the image that are compatible with the product_category on the parent product. If it is specified, detection is ALWAYS skipped. The system converts polygons into non-rotated rectangles.
Note that the pipeline will resize the image if the image resolution is too large to process (above 50MP).
Possible errors:
Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 characters. Returns INVALID_ARGUMENT if the product does not exist. Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing compatible with the parent product's product_category is detected. Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.CreateReferenceImageRequest{ // TODO: Fill request struct fields. } resp, err := c.CreateReferenceImage(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) DeleteProduct ¶ added in v0.33.1
func (c *ProductSearchClient) DeleteProduct(ctx context.Context, req *visionpb.DeleteProductRequest, opts ...gax.CallOption) error
DeleteProduct permanently deletes a product and its reference images.
Metadata of the product and all its images will be deleted right away, but search queries against ProductSets containing the product may still work until all related caches are refreshed.
Possible errors:
Returns NOT_FOUND if the product does not exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.DeleteProductRequest{ // TODO: Fill request struct fields. } err = c.DeleteProduct(ctx, req) if err != nil { // TODO: Handle error. } }
Output:
func (*ProductSearchClient) DeleteProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) DeleteProductSet(ctx context.Context, req *visionpb.DeleteProductSetRequest, opts ...gax.CallOption) error
DeleteProductSet permanently deletes a ProductSet. Products and ReferenceImages in the ProductSet are not deleted.
The actual image files are not deleted from Google Cloud Storage.
Possible errors:
Returns NOT_FOUND if the ProductSet does not exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.DeleteProductSetRequest{ // TODO: Fill request struct fields. } err = c.DeleteProductSet(ctx, req) if err != nil { // TODO: Handle error. } }
Output:
func (*ProductSearchClient) DeleteReferenceImage ¶ added in v0.33.1
func (c *ProductSearchClient) DeleteReferenceImage(ctx context.Context, req *visionpb.DeleteReferenceImageRequest, opts ...gax.CallOption) error
DeleteReferenceImage permanently deletes a reference image.
The image metadata will be deleted right away, but search queries against ProductSets containing the image may still work until all related caches are refreshed.
The actual image files are not deleted from Google Cloud Storage.
Possible errors:
Returns NOT_FOUND if the reference image does not exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.DeleteReferenceImageRequest{ // TODO: Fill request struct fields. } err = c.DeleteReferenceImage(ctx, req) if err != nil { // TODO: Handle error. } }
Output:
func (*ProductSearchClient) GetProduct ¶ added in v0.33.1
func (c *ProductSearchClient) GetProduct(ctx context.Context, req *visionpb.GetProductRequest, opts ...gax.CallOption) (*visionpb.Product, error)
GetProduct gets information associated with a Product.
Possible errors:
Returns NOT_FOUND if the Product does not exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.GetProductRequest{ // TODO: Fill request struct fields. } resp, err := c.GetProduct(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) GetProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) GetProductSet(ctx context.Context, req *visionpb.GetProductSetRequest, opts ...gax.CallOption) (*visionpb.ProductSet, error)
GetProductSet gets information associated with a ProductSet.
Possible errors:
Returns NOT_FOUND if the ProductSet does not exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.GetProductSetRequest{ // TODO: Fill request struct fields. } resp, err := c.GetProductSet(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) GetReferenceImage ¶ added in v0.33.1
func (c *ProductSearchClient) GetReferenceImage(ctx context.Context, req *visionpb.GetReferenceImageRequest, opts ...gax.CallOption) (*visionpb.ReferenceImage, error)
GetReferenceImage gets information associated with a ReferenceImage.
Possible errors:
Returns NOT_FOUND if the specified image does not exist.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.GetReferenceImageRequest{ // TODO: Fill request struct fields. } resp, err := c.GetReferenceImage(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) ImportProductSets ¶ added in v0.33.1
func (c *ProductSearchClient) ImportProductSets(ctx context.Context, req *visionpb.ImportProductSetsRequest, opts ...gax.CallOption) (*ImportProductSetsOperation, error)
ImportProductSets asynchronous API that imports a list of reference images to specified product sets based on a list of image information.
The [google.longrunning.Operation][google.longrunning.Operation] API can be used to keep track of the progress and results of the request. Operation.metadata contains BatchOperationMetadata. (progress) Operation.response contains ImportProductSetsResponse. (results)
The input source of this method is a csv file on Google Cloud Storage. For the format of the csv file please see [ImportProductSetsGcsSource.csv_file_uri][google.cloud.vision.v1.ImportProductSetsGcsSource.csv_file_uri].
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.ImportProductSetsRequest{ // TODO: Fill request struct fields. } op, err := c.ImportProductSets(ctx, req) if err != nil { // TODO: Handle error. } resp, err := op.Wait(ctx) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) ImportProductSetsOperation ¶ added in v0.33.1
func (c *ProductSearchClient) ImportProductSetsOperation(name string) *ImportProductSetsOperation
ImportProductSetsOperation returns a new ImportProductSetsOperation from a given name. The name must be that of a previously created ImportProductSetsOperation, possibly from a different process.
func (*ProductSearchClient) ListProductSets ¶ added in v0.33.1
func (c *ProductSearchClient) ListProductSets(ctx context.Context, req *visionpb.ListProductSetsRequest, opts ...gax.CallOption) *ProductSetIterator
ListProductSets lists ProductSets in an unspecified order.
Possible errors:
Returns INVALID_ARGUMENT if page_size is greater than 100, or less than 1.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" "google.golang.org/api/iterator" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.ListProductSetsRequest{ // TODO: Fill request struct fields. } it := c.ListProductSets(ctx, req) for { resp, err := it.Next() if err == iterator.Done { break } if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp } }
Output:
func (*ProductSearchClient) ListProducts ¶ added in v0.33.1
func (c *ProductSearchClient) ListProducts(ctx context.Context, req *visionpb.ListProductsRequest, opts ...gax.CallOption) *ProductIterator
ListProducts lists products in an unspecified order.
Possible errors:
Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" "google.golang.org/api/iterator" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.ListProductsRequest{ // TODO: Fill request struct fields. } it := c.ListProducts(ctx, req) for { resp, err := it.Next() if err == iterator.Done { break } if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp } }
Output:
func (*ProductSearchClient) ListProductsInProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) ListProductsInProductSet(ctx context.Context, req *visionpb.ListProductsInProductSetRequest, opts ...gax.CallOption) *ProductIterator
ListProductsInProductSet lists the Products in a ProductSet, in an unspecified order. If the ProductSet does not exist, the products field of the response will be empty.
Possible errors:
Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" "google.golang.org/api/iterator" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.ListProductsInProductSetRequest{ // TODO: Fill request struct fields. } it := c.ListProductsInProductSet(ctx, req) for { resp, err := it.Next() if err == iterator.Done { break } if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp } }
Output:
func (*ProductSearchClient) ListReferenceImages ¶ added in v0.33.1
func (c *ProductSearchClient) ListReferenceImages(ctx context.Context, req *visionpb.ListReferenceImagesRequest, opts ...gax.CallOption) *ReferenceImageIterator
ListReferenceImages lists reference images.
Possible errors:
Returns NOT_FOUND if the parent product does not exist. Returns INVALID_ARGUMENT if the page_size is greater than 100, or less than 1.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" "google.golang.org/api/iterator" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.ListReferenceImagesRequest{ // TODO: Fill request struct fields. } it := c.ListReferenceImages(ctx, req) for { resp, err := it.Next() if err == iterator.Done { break } if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp } }
Output:
func (*ProductSearchClient) RemoveProductFromProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) RemoveProductFromProductSet(ctx context.Context, req *visionpb.RemoveProductFromProductSetRequest, opts ...gax.CallOption) error
RemoveProductFromProductSet removes a Product from the specified ProductSet.
Possible errors:
Returns NOT_FOUND If the Product is not found under the ProductSet.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.RemoveProductFromProductSetRequest{ // TODO: Fill request struct fields. } err = c.RemoveProductFromProductSet(ctx, req) if err != nil { // TODO: Handle error. } }
Output:
func (*ProductSearchClient) UpdateProduct ¶ added in v0.33.1
func (c *ProductSearchClient) UpdateProduct(ctx context.Context, req *visionpb.UpdateProductRequest, opts ...gax.CallOption) (*visionpb.Product, error)
UpdateProduct makes changes to a Product resource. Only the display_name, description, and labels fields can be updated right now.
If labels are updated, the change will not be reflected in queries until the next index time.
Possible errors:
Returns NOT_FOUND if the Product does not exist. Returns INVALID_ARGUMENT if display_name is present in update_mask but is missing from the request or longer than 4096 characters. Returns INVALID_ARGUMENT if description is present in update_mask but is longer than 4096 characters. Returns INVALID_ARGUMENT if product_category is present in update_mask.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.UpdateProductRequest{ // TODO: Fill request struct fields. } resp, err := c.UpdateProduct(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
func (*ProductSearchClient) UpdateProductSet ¶ added in v0.33.1
func (c *ProductSearchClient) UpdateProductSet(ctx context.Context, req *visionpb.UpdateProductSetRequest, opts ...gax.CallOption) (*visionpb.ProductSet, error)
UpdateProductSet makes changes to a ProductSet resource. Only display_name can be updated currently.
Possible errors:
Returns NOT_FOUND if the ProductSet does not exist. Returns INVALID_ARGUMENT if display_name is present in update_mask but missing from the request or longer than 4096 characters.
Example ¶
package main import ( "context" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) func main() { ctx := context.Background() c, err := vision.NewProductSearchClient(ctx) if err != nil { // TODO: Handle error. } req := &visionpb.UpdateProductSetRequest{ // TODO: Fill request struct fields. } resp, err := c.UpdateProductSet(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp }
Output:
type ProductSetIterator ¶ added in v0.33.1
type ProductSetIterator struct { // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*visionpb.ProductSet, nextPageToken string, err error) // contains filtered or unexported fields }
ProductSetIterator manages a stream of *visionpb.ProductSet.
func (*ProductSetIterator) Next ¶ added in v0.33.1
func (it *ProductSetIterator) Next() (*visionpb.ProductSet, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*ProductSetIterator) PageInfo ¶ added in v0.33.1
func (it *ProductSetIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type ReferenceImageIterator ¶ added in v0.33.1
type ReferenceImageIterator struct { // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*visionpb.ReferenceImage, nextPageToken string, err error) // contains filtered or unexported fields }
ReferenceImageIterator manages a stream of *visionpb.ReferenceImage.
func (*ReferenceImageIterator) Next ¶ added in v0.33.1
func (it *ReferenceImageIterator) Next() (*visionpb.ReferenceImage, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*ReferenceImageIterator) PageInfo ¶ added in v0.33.1
func (it *ReferenceImageIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.