Topik ini menjelaskan cara menggunakan fitur pengenalan kode QR.
Skenario
Bayar dengan kode QR: Pembayar dapat memindai kode QR untuk menyelesaikan pembayaran.
Pemasaran dan periklanan dengan kode QR: Pemasar dan pengiklan dapat menambahkan kode QR ke poster dan kemasan produk untuk mempromosikan produk.
Ikhtisar
Intelligent Media Management (IMM) menyediakan fitur pengenalan kode QR yang dapat digunakan untuk mendeteksi posisi dan konten satu atau lebih kode QR atau barcode dari file gambar seperti foto dan tangkapan layar. Fitur ini juga mengembalikan informasi posisi dan teks yang disampaikan oleh kode tersebut. Informasi posisi mencakup sumbu x pojok kiri atas, sumbu y pojok kiri atas, lebar, dan tinggi, seperti yang ditunjukkan pada gambar berikut.
Kode QR

Barcode

Anda dapat menggunakan fitur pengenalan kode QR untuk menerapkan pemindaian dan pembacaan kode QR atau barcode dalam aplikasi bisnis Anda. Selain itu, Anda dapat mengembangkan fitur untuk memblokir atau mem-pixelasi kode QR atau barcode dalam gambar berdasarkan fitur pengenalan kode QR.
Prasyarat
Sebuah pasangan AccessKey telah dibuat dan diperoleh. Untuk informasi lebih lanjut, lihat Buat pasangan AccessKey.
Object Storage Service (OSS) diaktifkan, sebuah bucket dibuat, dan objek diunggah ke bucket. Untuk informasi lebih lanjut, lihat Unggah objek.
IMM diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan IMM.
Sebuah proyek dibuat di konsol IMM. Untuk informasi lebih lanjut, lihat Buat proyek.
CatatanAnda dapat memanggil operasi CreateProject untuk membuat proyek. Untuk informasi lebih lanjut, lihat CreateProject.
Anda dapat memanggil operasi ListProjects untuk menanyakan proyek yang ada di wilayah tertentu. Untuk informasi lebih lanjut, lihat ListProjects.
Penggunaan
Panggil operasi DetectImageCodes untuk mendeteksi barcode dari gambar.
Pendeteksian kode QR memungkinkan Anda mendeteksi hingga lima kode QR dari gambar.
Contoh pendeteksian kode QR
Informasi gambar
Proyek IMM: test-project
Lokasi penyimpanan gambar: oss://test-bucket/test-object1.jpg
Gambar contoh

Permintaan contoh
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-object1.jpg",
}Tanggapan contoh
{
"Codes": [
{
"Type": "qrcode",
"Content": "https://www.aliyun.com/product/imm",
"Boundary": {
"Left": 447,
"Top": 288,
"Height": 720,
"Width": 767
}
}
],
"RequestId": "9692C8B4-2AAF-55DE-91A0-B0B53725FBAB"
}Tanggapan contoh sebelumnya menunjukkan bahwa gambar tersebut berisi kode QR.
Kode contoh
Kode contoh berikut memberikan contoh tentang cara menggunakan IMM SDK untuk Python untuk mendeteksi kode QR dari gambar.
# -*- coding: utf-8 -*-
# File ini dihasilkan secara otomatis, jangan edit. Terima kasih.
import sys
import os
from typing import List
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> imm20200930Client:
"""
Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi klien.
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
access_key_id=access_key_id,
access_key_secret=access_key_secret
)
# Tentukan titik akhir IMM.
config.endpoint = f'imm.cn-beijing.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
# Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Untuk mencegah risiko keamanan, kami sarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai pengguna RAM.
# Kami sarankan Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
# Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk melaksanakan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, lihat https://www.alibabacloud.com/help/document_detail/2361894.html.
imm_access_key_id = os.getenv("AccessKeyId")
imm_access_key_secret = os.getenv("AccessKeySecret")
# Inisialisasi klien.
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
detect_image_codes_request = imm_20200930_models.DetectImageCodesRequest(
project_name='test-project',
source_uri='oss://test-bucket/test-object1.jpg'
)
runtime = util_models.RuntimeOptions()
try:
# Anda dapat memilih untuk mencetak respons operasi API.
client.detect_image_codes_with_options(detect_image_codes_request, runtime)
except Exception as error:
# Cetak pesan kesalahan jika perlu.
UtilClient.assert_as_string(error.message)
@staticmethod
async def main_async(
args: List[str],
) -> None:
# Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Untuk mencegah risiko keamanan, kami sarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai pengguna RAM.
# Kami sarankan Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
# Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk melaksanakan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, lihat https://www.alibabacloud.com/help/document_detail/2361894.html.
imm_access_key_id = os.getenv("AccessKeyId")
imm_access_key_secret = os.getenv("AccessKeySecret")
# Inisialisasi klien.
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
detect_image_codes_request = imm_20200930_models.DetectImageCodesRequest(
project_name='test-project',
source_uri='oss://test-bucket/test-object1.jpg'
)
runtime = util_models.RuntimeOptions()
try:
# Anda dapat memilih untuk mencetak respons operasi API.
await client.detect_image_codes_with_options_async(detect_image_codes_request, runtime)
except Exception as error:
# Cetak pesan kesalahan jika perlu.
UtilClient.assert_as_string(error.message)
if __name__ == '__main__':
Sample.main(sys.argv[1:])Contoh pendeteksian barcode
Informasi gambar
Proyek IMM: test-project
Lokasi penyimpanan gambar: oss://test-bucket/test-object2.jpg
Gambar contoh

Permintaan contoh
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-object2.jpg",
}Tanggapan contoh
{
"Codes": [
{
"Type": "barcode",
"Confidence": 0.433,
"Content": "",
"Boundary": {
"Left": 162,
"Top": 393,
"Height": 86,
"Width": 78
}
}
],
"RequestId": "391A3AEC-FF64-5450-96DF-18DBDC234B2F"
}Tanggapan contoh sebelumnya menunjukkan bahwa gambar tersebut berisi barcode.
Kode contoh
# -*- coding: utf-8 -*-
# File ini dihasilkan secara otomatis, jangan edit. Terima kasih.
import sys
import os
from typing import List
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> imm20200930Client:
"""
Gunakan ID AccessKey dan rahasia AccessKey Anda untuk menginisialisasi klien.
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
access_key_id=access_key_id,
access_key_secret=access_key_secret
)
# Tentukan titik akhir IMM.
config.endpoint = f'imm.cn-beijing.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
# Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Untuk mencegah risiko keamanan, kami sarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai pengguna RAM.
# Kami sarankan Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
# Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk melaksanakan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, lihat https://www.alibabacloud.com/help/document_detail/2361894.html.
imm_access_key_id = os.getenv("AccessKeyId")
imm_access_key_secret = os.getenv("AccessKeySecret")
# Inisialisasi klien.
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
detect_image_codes_request = imm_20200930_models.DetectImageCodesRequest(
project_name='test-project',
source_uri='oss://test-bucket/test-object2.jpg'
)
runtime = util_models.RuntimeOptions()
try:
# Anda dapat memilih untuk mencetak respons operasi API.
client.detect_image_codes_with_options(detect_image_codes_request, runtime)
except Exception as error:
# Cetak pesan kesalahan jika perlu.
UtilClient.assert_as_string(error.message)
@staticmethod
async def main_async(
args: List[str],
) -> None:
# Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Untuk mencegah risiko keamanan, kami sarankan Anda memanggil operasi API atau melakukan O&M rutin sebagai pengguna RAM.
# Kami sarankan Anda tidak menyertakan pasangan AccessKey (ID AccessKey dan rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
# Dalam contoh ini, pasangan AccessKey dibaca dari variabel lingkungan untuk melaksanakan verifikasi identitas untuk akses API. Untuk informasi tentang cara mengonfigurasi variabel lingkungan, lihat https://www.alibabacloud.com/help/document_detail/2361894.html.
imm_access_key_id = os.getenv("AccessKeyId")
imm_access_key_secret = os.getenv("AccessKeySecret")
# Inisialisasi klien.
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
detect_image_codes_request = imm_20200930_models.DetectImageCodesRequest(
project_name='test-project',
source_uri='oss://test-bucket/test-object2.jpg'
)
runtime = util_models.RuntimeOptions()
try:
# Anda dapat memilih untuk mencetak respons operasi API.
await client.detect_image_codes_with_options_async(detect_image_codes_request, runtime)
except Exception as error:
# Cetak pesan kesalahan jika perlu.
UtilClient.assert_as_string(error.message)
if __name__ == '__main__':
Sample.main(sys.argv[1:])