问题描述
我是Python的初学者,开始尝试编写代码以分析喷雾图像并绘制“灰度值”以查看喷雾模式。
document
.body
.querySelector("iframe")
.addEventListener(
"load",async ( { currentTarget: { src } } ) => {
const data = await fetch(
src,{
cache: "only-if-cached"
}
);
// ... use data
},{
passive: true,once: true
}
);
但是,此代码分析整个图像,我只需要特定的一行,例如329行或其他内容。作为缓解措施,我也尝试裁剪图像,但是没有成功。
我正在尝试编写类似于Image J上的工具“绘图配置文件”的代码。
The line and imageJ plot profile
解决方法
由于几个小时后,没有人向我们提供正确有效的解决方案的样本,因此,这是缓解作物的原因:
from PIL import Image
filepath = 'flat2.jpg'
img = Image.open(filepath).convert('L')
WIDTH,HEIGHT = img.size
LINE = 329 # <---- put here your desired line number
img = img.crop( (0,LINE,WIDTH,LINE+1 ) ).save('crop.png')
img = Image.open('crop.png')
# do stuff
# WIDTH,HEIGHT = img.size
# pix = img.load()
# etc
它应该可以工作,但根本不是一个正确有效的解决方案。我相信应该通过numpy
等来完成。
对于crop()
函数,这是非常简单的事情。它只需要从给定图像中提取一些矩形区域(框)。方括号内的四个数字(x1,y1,x2,y2)是此框的坐标元组。左上角(x1,y1)右下角(x2,y2)。唯一可能的麻烦是,如果这些坐标中的任何一个超出图像尺寸。