python图像二值化并保存

python二值化图片后,图片显示是正确的,但是保存为什么是全黑??附代码和运行结果

img

img

img

可能是因为保存时使用的像素值范围不正确。在二值化后,像素值只有0和1,而保存时使用的像素值范围可能是0到255。因此,需要将像素值范围转换为0到255,然后再保存。可以使用以下代码将像素值范围转换为0到255:
修改代码如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt
im_in=cv2.imread("peter.png”,O)#灰度图
#归一化(0,1)
im_in=im_in /255
#二值化
im_in_h,im_in_w im_in.shape
for i in range(im_in_h):
  for j in range(im_in_w):
    if(imin[i][j]<=0.4):
        im_in[i][j]=1
    else:
        im_in[i][j]=0
#可视化
#修改代码
im_in = im_in * 255
im_in = im_in.astype(np.uint8)
cv2.imshow('peter0.png',im_in)
cv2.imwrite('peter0.png',im_in)
cv2.waitKey(0)

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7790494
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【Python从入门到精通】(十)Python流程控制的关键字该怎么用呢?列表推导式,生成器【收藏下来,常看常新】
  • 同时,你还可以查看手册:python- 走向编程的第一步 中的内容
  • 除此之外, 这篇博客: 【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码中的 代码实现 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 导入模块

    import pygame
    import sys
    import traceback
    import os
    import CXK
    import enemy
    import bullet
    import supply
    from pygame.locals import *
    from random import *
    

    游戏主界面

    #游戏主界面
    def ui():
        #循环播放背景音乐
        pygame.mixer.music.play(-1)
    
        #初始化界面按键图片并获取图片的矩形位置
        start_game_image = pygame.image.load("images/start_game.png").convert_alpha()
        start_game_image_rect = start_game_image.get_rect()
        game_rules_image = pygame.image.load("images/game_rules.png").convert_alpha()
        game_rules_image_rect = game_rules_image.get_rect()
        game_quit_image = pygame.image.load("images/game_quit.png").convert_alpha()
        game_quit_image_rect = game_quit_image.get_rect()
    
        #初始化游戏规则图片并获取图片的矩形位置
        rules_image = pygame.image.load("images/游戏玩法.png").convert_alpha()
        back_image = pygame.image.load("images/back.png").convert_alpha()
        back_image_rect =  back_image.get_rect()
    
        #标志是否在主界面
        is_ui = True
    
        #帧率
        clock = pygame.time.Clock()
    
        #主界面循环
        while True:
            #获取事件信息
            for event in pygame.event.get():
                #如果点击右上角退出
                if event.type == QUIT:
                    #退出程序
                    pygame.quit()
                    sys.exit()
    
            #如果是主界面
            if is_ui:
                #绘制背景
                screen.blit(background,(0,0))
    
                #更改主界面按键图片的矩形位置并绘制主界面按键
                start_game_image_rect.left,start_game_image_rect.top = (width - start_game_image_rect.width)//2,height - 500
                screen.blit(start_game_image,start_game_image_rect)
    
                game_rules_image_rect = game_rules_image.get_rect()
                game_rules_image_rect.left,game_rules_image_rect.top = (width - game_rules_image_rect.width)//2,start_game_image_rect.bottom+50
                screen.blit(game_rules_image,game_rules_image_rect)
    
                game_quit_image_rect.left,game_quit_image_rect.top = (width - game_quit_image_rect.width)//2, game_rules_image_rect.bottom+50
                screen.blit(game_quit_image,game_quit_image_rect)
    
                #检测用户的鼠标操作
                #如果用户按下鼠标左键
                if pygame.mouse.get_pressed()[0]:
                    #获取鼠标坐标
                    pos = pygame.mouse.get_pos()
                    #如果用户点击”开始游戏“
                    if start_game_image_rect.left < pos[0] < start_game_image_rect.right and start_game_image_rect.top < pos[1] < start_game_image_rect.bottom:
                        #调用主函数
                        main()
                    #如果用户点击”退出游戏“
                    if game_quit_image_rect.left < pos[0] < game_quit_image_rect.right and game_quit_image_rect.top < pos[1] < game_quit_image_rect.bottom:
                        pygame.quit()
                        sys.exit()
                    #如果用户点击”游戏规则“
                    if game_rules_image_rect.left < pos[0] < game_rules_image_rect.right and game_rules_image_rect.top < pos[1] < game_rules_image_rect.bottom:
                        #离开主界面
                        is_ui = False
    

    代码量有点多,就没有全部粘贴出来
    公众号:Python日志
    需要源码的小伙伴可以在公众号回复蔡徐坤大战篮球

  • 您还可以看一下 王宁宁老师的图解Python数据结构与算法-实战篇课程中的 什么是链表?如何用 Python 表示小节, 巩固相关知识点