Python图片处理
import numpy as npimport cv2
from PIL import Image
def loadimage(i,j):
im_i_j = cv2.imread('si/j.BMP',cv2.IMREAD_GRAYSCALE)
im_i_j = np.array(im_i_j)
im_i_j=im_i_j.flatten()
return im_i_j
for i in range(1,41):
for j in range(1,6):
im_i_j = loadimage(i,j)
im_20_5
用Python读取多个文件夹里面的多张灰色图片,每一张图片转化成矩阵,矩阵按列堆叠为一个列向量Xi,。运行代码时报错NameError: name 'im_20_5' is not defined 本帖最后由 livcui 于 2020-8-2 11:58 编辑
import numpy as np
import cv2
from PIL import Image
def loadimage(i,j):
im_i_j = cv2.imread('si/j.BMP',cv2.IMREAD_GRAYSCALE)
im_i_j = np.array(im_i_j)
im_i_j=im_i_j.flatten()
return im_i_j
for i in range(1,41):
for j in range(1,6):
im_i_j = loadimage(i,j)……
im_20_5 真不是你乱加的?
把 im_20_5 去掉就好了吧~
import numpy as np
import cv2
from PIL import Image
def loadimage(i,j):
im_i_j = cv2.imread('si/j.BMP',cv2.IMREAD_GRAYSCALE)
im_i_j = np.array(im_i_j)
im_i_j=im_i_j.flatten()
return im_i_j
for i in range(1,41):
for j in range(1,6):
im_i_j = loadimage(i,j) 你代码最后咋多了个im_20_5 qiuyouzhi 发表于 2020-8-2 11:57
你代码最后咋多了个im_20_5
想要打印im_20_5这个矩阵 livcui 发表于 2020-8-2 11:56
……
im_20_5 真不是你乱加的?
麻烦看我最新的回复 我是小白,只是想把这些图片转化成数据矩阵,im_20_5表示文件夹s20下的第5张图片的数据 Twilight6 发表于 2020-8-2 11:57
把 im_20_5 去掉就好了吧~
麻烦看7楼 A.Lyapunov 发表于 2020-8-2 12:27
麻烦看7楼
你想打印 im_20_5 应该在 for 循环内打印吧:
import numpy as np
import cv2
from PIL import Image
def loadimage(i,j):
im_i_j = cv2.imread('si/j.BMP',cv2.IMREAD_GRAYSCALE)
im_i_j = np.array(im_i_j)
im_i_j=im_i_j.flatten()
return im_i_j
for i in range(1,41):
for j in range(1,6):
im_i_j = loadimage(i,j)
if i == 20 and j == 5:
print(im_i_j) Twilight6 发表于 2020-8-2 12:31
你想打印 im_20_5 应该在 for 循环内打印吧:
好的。运行结果:,im_20_5没有值,请问这是为什么
A.Lyapunov 发表于 2020-8-2 12:36
好的。运行结果:,im_20_5没有值,请问这是为什么
我发现你的函数完全没有用到 i 和 j 这两个参数...所以说你每次循环的loadimmage 都是同一个情况 Twilight6 发表于 2020-8-2 12:37
我发现你的函数完全没有用到 i 和 j 这两个参数...所以说你每次循环的loadimmage 都是同一个情况
函数里面的这句:im_i_j = cv2.imread('si/j.BMP',cv2.IMREAD_GRAYSCALE),这不算用了i,j吗 A.Lyapunov 发表于 2020-8-2 12:40
函数里面的这句:im_i_j = cv2.imread('si/j.BMP',cv2.IMREAD_GRAYSCALE),这不算用了i,j吗
这个引号起来的是属于字符串,你要改成这样,用格式化
import numpy as np
import cv2
from PIL import Image
def loadimage(i,j):
im_i_j = cv2.imread(f's{i}/{j}.BMP',cv2.IMREAD_GRAYSCALE)
im_i_j = np.array(im_i_j)
im_i_j=im_i_j.flatten()
return im_i_j
for i in range(1,41):
for j in range(1,6):
im_i_j = loadimage(i,j)
if i == 20 and j == 5:
print(im_i_j)
Twilight6 发表于 2020-8-2 12:41
这个引号起来的是属于字符串,你要改成这样,用格式化
谢谢,打印出来了
页:
[1]