
我们很高兴地通知您关于 Aspose.Imaging Cloud API 新推出的功能。现在它支持基于网站的图像源进行反向图像搜索。图像去斜功能也使得该 API 无与伦比。我们正在不断努力和改进,以为您提供最佳解决方案。
反向图像搜索对于查找重复或相似的图像非常有用。它还可以帮助监控淫秽或图形内容。您还可以通过反向搜索数字签名的图像来对抗版权侵权或商标仿冒。此外,图像去斜也是 Aspose.Imaging Cloud API 的另一个增值功能。它同样适用于扫描的 PDF 文档,因为这些文档中常常存在倾斜的图像。这类 PDF 文档通常会被转换为可搜索的 PDF 文档,通过去斜图像可以改善结果。让我们下面来剖析这些功能。
使用 Aspose.Imaging Cloud SDK 进行反向图片搜索 Python
有多个 SDK 可用于与 Aspose.Imaging Cloud API 进行通信。这些 SDK 处理所有细节,让您可以轻松满足需求。这些 SDK 包括 .NET、Java、Python、PHP、Ruby、Android 和 Node.js。在这里,我们将使用 Python 示例进行演示:
首先,您需要在 Aspose.Cloud 免费 sign up。安装 Python 2.7 或更高版本,然后将以下 PyPi package 添加到您的 requirements.txt 中。
aspose-imaging-cloud>=20.1
现在按如下方式导入依赖项:
import aspose-imaging-cloud
现在,您可以使用下面的 Python 代码来调用 API 并测试该功能:
def search_image_from_web_source(self):
"""Finds the similar images from the URL source"""
print('Finds similar images from URL:')
similarity_threshold = 30.0
max_count = 3
folder = ImagingAiBase.CLOUD_PATH # Folder with image to process
storage = None # We are using default Cloud Storage
# 将网站上的图像添加到搜索上下文中
image_source_url = urllib.quote_plus('https://www.f1news.ru/interview/hamilton/140909.shtml')
self._imaging_api.create_web_site_image_features(
requests.CreateWebSiteImageFeaturesRequest(self._search_context_id, image_source_url, folder, storage))
self._wait_idle(self._search_context_id)
# 从网站下载图像
image_data = req.get('https://cdn.f1ne.ws/userfiles/hamilton/140909.jpg')
path = os.path.abspath(os.path.join(ImagingAiBase.OUTPUT_FOLDER, 'WebSearchSample.jpg'))
with open(path, "wb") as f:
f.write(image_data.content)
# 调整下载的图像以展示搜索引擎的功能
resized_image = self._imaging_api.create_resized_image(requests.CreateResizedImageRequest(
path, 600, 400, "jpg", storage=storage))
# 上传图像到云端
image_name = 'ReverseSearch.jpg'
self._imaging_api.upload_file(requests.UploadFileRequest(ImagingAiBase.CLOUD_PATH + "/" + image_name,
resized_image, storage))
# 在搜索上下文中查找相似图像
find_response = self._imaging_api.find_similar_images(
requests.FindSimilarImagesRequest(self._search_context_id, similarity_threshold, max_count,
image_id=ImagingAiBase.CLOUD_PATH + "/" + image_name,
folder=folder, storage=storage))
print('Similar images found: ' + str(len(find_response.results)))
print('Similar image id: ' + find_response.results[0].image_id)
print('Similarity: ' + str(find_response.results[0].similarity))
基于网站的反向图像搜索图像来源在这个例子中得到了很好的阐明。它包含了一步额外的调整图像大小,以展示API的效率。图像尺寸可能不同,但API将生成可靠和准确的结果。以下是输出的截图:

您可以注意到,API 响应中的参数显示了相似图像的数量、URL 和相似度百分比。
使用 Aspose.Imaging Cloud SDK for .NET 进行图像去斜。
图像包含大量信息,图像处理在这些日子里变得非常重要。一个非常常见的用例是在扫描的 PDF 文档中或手机相机拍摄的图像中存在倾斜图像。Aspose.Imaging Cloud API 现在包括去除图像倾斜的功能。您可以在 BMP、GIF、JPEG、JPEG2000、PSD、TIFF、WEBP 和 PNG 格式中去除图像倾斜。让我们考虑一个 .NET 示例,来去除 TIFF 图像的倾斜。
using System;
using System.IO;
using Aspose.Imaging.Cloud.Sdk.Api;
using Aspose.Imaging.Cloud.Sdk.Model.Requests;
namespace AsposeImagingCloudSdkExamples
{
/// <summary>
/// 纠正图像倾斜示例。
/// </summary>
/// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
class DeskewImage : ImagingBase
{
/// <summary>
/// 初始化 <see cref=\"DeskewImage\"/> 类的新实例。
/// </summary>
/// <param name="imagingApi">成像 API。</param>
public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
{
PrintHeader("Deskew image example:");
}
/// <summary>
/// 获取示例图像文件的名称。
/// </summary>
/// <value>
/// 示例图像文件的名称。
/// </value>
/// <remarks>
/// 输入格式可以是以下之一:
/// BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP, PNG
/// </remarks>
protected override string SampleImageFileName => "Sample_05_Scan1_SkewToLeft.tif";
private const string SaveImageFormat = "tif";
/// <summary>
/// 从云存储中去畸变图像。
/// </summary>
public void DeskewImageFromStorage()
{
Console.WriteLine("Deskew the image from cloud storage");
UploadSampleImageToCloud();
bool resizeProportionally = true;
string bkColor = "white";
string folder = CloudPath; // Input file is saved at the Examples folder in the storage
string storage = null; // We are using default Cloud Storage
var request = new DeskewImageRequest(SampleImageFileName, resizeProportionally, bkColor, folder, storage);
Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");
using (Stream updatedImage = this.ImagingApi.DeskewImage(request))
{
SaveUpdatedSampleImageToOutput(updatedImage, false, SaveImageFormat);
}
Console.WriteLine();
}
/// <summary>
/// 对现有图像进行去斜处理,并将更新后的图像上传到云存储。
/// </summary>
public void DeskewImageAndUploadToStorage()
{
Console.WriteLine("Deskews the image and upload to cloud storage");
UploadSampleImageToCloud();
bool resizeProportionally = true;
string bkColor = null;
string folder = CloudPath; // Input file is saved at the Examples folder in the storage
string storage = null; // We are using default Cloud Storage
var request = new DeskewImageRequest(SampleImageFileName, resizeProportionally, bkColor, folder, storage);
Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");
using (Stream updatedImage = this.ImagingApi.DeskewImage(request))
{
UploadImageToCloud(GetModifiedSampleImageFileName(false, SaveImageFormat), updatedImage);
}
Console.WriteLine();
}
/// <summary>
/// Deskews an image. Image data is passed in a request stream.
/// </summary>
public void CreateDeskewedImageFromRequestBody()
{
Console.WriteLine("Deskews the image from request body");
using (FileStream inputImageStream = File.OpenRead(Path.Combine(ExampleImagesFolder, SampleImageFileName)))
{
bool resizeProportionally = true;
string bkColor = "white";
string storage = null; // We are using default Cloud Storage
string outPath = null; // Path to updated file (if this is empty, response contains streamed image)
var request = new CreateDeskewedImageRequest(inputImageStream, resizeProportionally, bkColor, outPath, storage);
Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");
using (Stream updatedImage = this.ImagingApi.CreateDeskewedImage(request))
{
SaveUpdatedSampleImageToOutput(updatedImage, true, SaveImageFormat);
}
}
Console.WriteLine();
}
}
}
此示例将样本图像上传到云存储,校正图像倾斜并将更新后的图像上传到云存储。以下是输入和输出 TIFF 图像的屏幕截图。
输入 TIFF 图像

输出 TIFF 图像(已去斜)

Aspose.Imaging Cloud SDK for Ruby
另一个 SDK 线上的重要补充是我们发布了 Aspose.Imaging Cloud SDK for Ruby。它让您可以在 Ruby 应用程序中集成强大的图像处理功能。
我们鼓励您尝试这些高效的 API 功能,并与我们分享您的经验。如果您有任何建议或疑问,请告诉我们。我们期待通过 Free Support Forums 收到您的回复。