如何解决如何在图像中选择特定的水平像素线以在Python上进行分析?
我是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)。唯一可能的麻烦是,如果这些坐标中的任何一个超出图像尺寸。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。