Одно благословение становится еще большим благословением Alipay Jifu сетевая фотография захват основных операций изображения

Захват и обработка изображений

Обзор

Ежегодное мероприятие по сбору Вуфу началось снова. Даже если оно будет стоить всего несколько долларов в конце, оно не может остановить всеобщий интерес к сбору пятерки удачи. Чтобы собрать пять благословений, вам нужно использовать AR для сканирования объектов с символами благословения. Я помню, что раньше я загружал для сканирования всевозможные изображения благословений из Интернета, и их было довольно сложно загрузить, поэтому в этом году я напрямую сканировал изображения Baidu с помощью символа "福" , "Fuqi", "fu" как ключевые слова на картинке. Позже я подумал, что когда я изучал изображения, было много основных операций обработки изображений, и я немного манипулировал изображением вручную, превращая один символ благословения в несколько символов благословения. За кулисами ответили «福», чтобы получить более 170 фотографий «Фу». Создание не из легких, достаточно нажать «Я смотрю».

Захват изображения

Захват изображений не использует какую-либо структуру для захвата, это очень простые данные запроса URL, данные анализа, сохранение данных. Я не буду вдаваться в подробности здесь. Если вы хотите знать, вы можете увидеть десятки строк кода в моих предыдущих твитах для загрузки HD-обоев партиями.

Код реализации выглядит следующим образом


# -*- coding:utf-8 -*-
import requests
import os
import re
import time
import random

def getManyPages(keyword, pages):
    params = []
    for i in range(30, 30 * pages + 30, 30):
        params.append({
        })
    url = 'https://image.baidu.com/search/acjson'
    urls = []
    for i in params:
        urls.append(requests.get(url, params=i).json().get('data'))
    return urls
def getpage(key, page):
    new_url = []
    for i in range(0, page * 30 + 30, 30):
        new_url.append({
        })
    url = 'https://image.baidu.com/search/acjson'
    result = []
    for i in new_url:
        randnumber1 = random.randint(0, 3)  # 生成随机数
        time.sleep(randnumber1)  # 按随机数延时
        print(i)
        try:
            result.append(requests.get(url, params=i).json().get('data'))
            print(result)
        except:  # 如果延时之后还是被拒绝
            # print('error\n')
            randnumber2 = random.randint(5, 10)  # 延迟随机时间
            time.sleep(randnumber2)
    return result
def getImg(dataList, localPath, keyword):
    i = 1
    x = 0
    for list in dataList:
        for each in list:
            try:
                if each.get('thumbURL') != None:
                    print('downloading:%s' % each.get('thumbURL'))
                    pic = requests.get(each.get('thumbURL'))
            except requests.exceptions.ConnectionError:
                print('error: This photo cannot be downloaded')
                continue
            dir = 'image/' + keyword + '_' + str(i) + '.jpg'
            fp = open(dir, 'wb')
            fp.write(pic.content)
            fp.close()
            i += 1
def dowmloadPic(html, keyword):
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
    i = 1
    print('Can not find key word:' + keyword + 'is downloading...')
    for each in pic_url:
        print('No ' + str(i) + '.jpg is downloading ,URL:' + str(each))
        try:
            pic = requests.get(each, timeout=10)
        except requests.exceptions.ConnectionError:
            print('error: This photo cannot be downloaded')
            continue

        dir = 'image/' + keyword + '_' + str(i) + '.jpg'
        fp = open(dir, 'wb')
        fp.write(pic.content)
        fp.close()
        i += 1
if __name__ == '__main__':
    keyword = '福气'  # 改变keyword就可以得到你要搜索的图片
    dataList = getpage(keyword, 2)  # key word and number of page
    getImg(dataList, '/images', keyword)  # path

Обработка изображений

В этой части я выполнил три простейших обработки изображений (на самом деле просто называемые функцией), в основном завершенные одним или двумя предложениями. «Обработка серого», «инверсия пикселей» и «инверсия изображения» были выполнены для изображения соответственно. код показан ниже.


import cv2
from matplotlib import pyplot as plt
import numpy as np

imgOgr = cv2.imread('D://python_pycharm//MyPy//image//fu_7.jpg')
# 转换颜色模式,显示原图
img = cv2.cvtColor(imgOgr, cv2.COLOR_BGR2RGB)
# 灰度图
img_gray = cv2.cvtColor(imgOgr, cv2.COLOR_RGB2GRAY)
# 反色
img_array = np.asarray(img)
img_re = 255 - img_array
# 倒
img_r = cv2.flip(img, -1)

plt.subplot(2, 2, 1), plt.imshow(img)
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 2), plt.imshow(img_gray, cmap="gray")
plt.title('Gray'), plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 3), plt.imshow(img_re)
plt.title('re'), plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 4), plt.imshow(img_r)
plt.title('r'), plt.xticks([]), plt.yticks([])
plt.show()

Показать результаты

1. Эффект захвата изображения

Одно благословение становится еще большим благословением Alipay Jifu сетевая фотография захват основных операций изображения

Одно благословение становится еще большим благословением Alipay Jifu сетевая фотография захват основных операций изображения

2. Результаты обработки изображений

Одно благословение становится еще большим благословением Alipay Jifu сетевая фотография захват основных операций изображения

рекомендация

отblog.51cto.com/15069472/2577343