OpenCV之油画特效

源码:

复制代码
# 读取图片
img = cv2.imread("d:/img.jpg", 1)
height, width, channels = img.shape

# 灰度图
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 将图像分为8x8的多个小块,并统计小块每个像素的灰度值
# 划分灰度等级,例如0-255: 0-63, 64-127, ...
# 找出每个小块中,每个等级的个数,找出最多的
# 用最多的的平均值替换原像素

dst_img = np.zeros((height, width, channels), np.uint8)
for i in range(0, height):
    for j in range(0, width):
        max_level_arr = []
        levelMap = {} # k: 级别, v: 原始像素值的列表
        for m in range(-4, 4):
            for n in range(-4, 4):
                # 处理越界
                if i + m >= height or i + m < 0:
                    m = -m
                if j + n >= width or j + n < 0:
                    n = -n
               
                # 划分等级 0-31, 32-63, ...
                level = gray_img[i + m, j + n] // 32
                if not level in levelMap.keys():
                    levelMap[level] = [img[i + m, j + n],]
                else:
                    levelMap[level].append(img[i + m, j + n])
                # 个数最多的级别
                if len(levelMap[level]) > len(max_level_arr):
                    max_level_arr = levelMap[level]
        # 取均值
        size = len(max_level_arr)
        b_sum, g_sum, r_sum = 0, 0, 0
        for b, g, r in max_level_arr:
            b_sum += b
            g_sum += g
            r_sum += r
        dst_img[i, j] = [b_sum // size, g_sum // size, r_sum // size ]
   

cv2.imshow("dst_img", dst_img)
if cv2.waitKey() == ord("q"):
    cv2.destroyAllWindows()

效果:

相关推荐
七夜zippoe几秒前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能
举个栗子。2 分钟前
SwarmForge:AI 智能体协同编程框架,让多个 Agent 在隔离工作区并行协作
人工智能·开源·ai编程
AIGC小尼13 分钟前
Windows 本地 AI 漫剧全自动生产线部署完整教程(零基础、全指令、带源码、模型配置、排错方案)
人工智能·windows·ai漫剧
合米AI SOP系统17 分钟前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo18 分钟前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
ShallWeL36 分钟前
Orin 上多模型常驻与显存预算
人工智能·嵌入式硬件·nvidia·orin
xiaohaiAIgeo38 分钟前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
IT_陈寒39 分钟前
Python的多线程就是个假把式,我算是体验到了
前端·人工智能·后端
集和诚JHCTECH1 小时前
案例分享 | BRAV-7721助力印刷电路板(PCB)智能缺陷复判系统
人工智能·嵌入式硬件·边缘计算