Python中怎么生成一个马赛克画
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关Python中怎么生成一个马赛克画,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。import reimport osimp
千家信息网最后更新 2026年11月02日Python中怎么生成一个马赛克画
这篇文章将为大家详细讲解有关Python中怎么生成一个马赛克画,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
import re
import os
import cv2
import numpy as np
from tqdm import tqdm
IMG_DIR = "images"
def load_all_images(tile_row, tile_col):
img_dir = IMG_DIR
filenames = os.listdir(img_dir)
result = []
print(len(filenames))
for filename in tqdm(filenames):
if not re.search(".jpg", filename, re.I):
continue
try:
filepath = os.path.join(img_dir, filename)
im = cv2.imread(filepath)
row = im.shape[0]
col = im.shape[1]
im = resize(im, tile_row, tile_col)
result.append(np.array(im))
except Exception as e:
msg = "error with {} - {}".format(filepath, str(e))
print(msg)
return np.array(result, dtype=np.uint8)这里load_all_images函数的参数就是统一后的尺寸,tile_row和tile_col分别对应高和宽。
下面的代码对要转换的图片进行分割
img = cv2.imread(infile)
tile_row, tile_col = get_tile_row_col(img.shape)
for row in range(0, img_shape[0], tile_row):
for col in range(0, img_shape[1], tile_col):
roi = img[row:row+tile_row,col:col+tile_col,:]我们将要转换的图片分割成一个个小方格,tile_row和tile_col是小方格的高和宽,roi存取小方格中的图片数据。
下面是计算两张图片相似度的函数
from scipy.spatial.distance import euclidean
def img_distance(im1, im2):
if im1.shape != im2.shape:
msg = "shapes are different {} {}".format(im1.shape, im2.shape)
raise Exception(msg)
array1 = im1.flatten()
array2 = im2.flatten()
dist = euclidean(array1, array2)
return distim1和im2是两张图片的数据,图片数据是一个三维的numpy数组,这里我们将三维数组转换成一维数组后,比较两者的欧式距离。之后要找出最相似的图片,只需遍历图片集中所有的图片,找到距离最短的那张图片,去替换原图中的小方格就可以了。
关于Python中怎么生成一个马赛克画就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
图片
方格
数据
数组
马赛克
马赛
生成
相似
内容
函数
文章
更多
知识
篇文章
三维
不错
代码
原图
参数
只需
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小米移动互联网科技园
互联网加科技
网络科技有限互联网
有马互联网科技
以房互联网科技
万易互联网科技有限公司
天津摩尔互联网科技
互联网科技ppt模板
大白互联网科技
上海亿帐通互联网科技
佰商互联网科技有限公司
海南购全球互联网科技
广西拼得多互联网科技有限公司
农村开互联网科技讲堂
互联网科技产品
互联网科技项目计划书材料类
西安小鹰速贷互联网科技有限公司
保险科技服务互联网营销体系
四川互联网展示科技馆设计
广东鹅鹅鹅互联网科技有限公司
圆梦互联网科技
互联网 科技馆
互联网实体化科技化
互联网大会黑科技排名
互联网与医疗科技
互联网媒体平台算高科技产业
青海科技产业互联网发展
华中科技大学互联网的牛人
上海京穆互联网科技有限公司
福建互联网展示科技馆设计