“Python怎么读取像素?Python如何用像素修改颜色”的全部内容了,希望对你有所帮助。<p><h3>python怎么在一群点集中,提取中心坐标<h3><p>首先创建一个包含x值的列表,其中包含数字1~1

“Python怎么读取像素?Python如何用像素修改颜色”的全部内容了,希望对你有所帮助。<p><h3>python怎么在一群点集中,提取中心坐标<h3><p>首先创建一个包含x值的列表,其中包含数字1~1,第1张

对的。

使用坐标定位控件时,可以采用像素或百分比两种方式对的,可以采用这两种方式实现坐标定位,对结构化代码,如果要在Python代码中引用和修改其他控件的值,可以使用全局字典gComps,这个字典保存了所有的GUI元素和一些对应的控件变量,可以直接使用形如gComps的代码来访问对应控件。

PythonTkinterGUI可视化助手又称pythonTkinter窗口布局助手,基于VB编写的一个插件,主要用于输出Python的tk代码,采用可视化的 *** 作界面,可快速布局tkinter的窗口大小和组件位置,自动生成代码。

一个计算机数字图像它本质上来说就是由很多个像素点来组成的,而图像像素点数量是通过它长宽分辨率相乘而得到的。那么下面文章就是会来讲解一下,python获取像素以及使用像素修改其颜色的方法,想要学习这个知识的小伙伴就继续往下看看吧。

一、获取像素

matplotlib、opencv、skimage、pyplot等第三方库和模块,都有方法能够将读取到python程序中将其作为图像对象。那么像素实际上指的就是分辨率,只需要使用对象shape()这个属性即可获取,下面示例为opencv读取像素的方法:

import cv2 imagess = cv2imread(r'C:\Users\Administrator\Desktop\03jpg',-1)print(imagessshape)

或者是用skimage这个第三方库之中的模块也行,使用data模块打开一个自带的之后,使用同样的属性即可获取像素,代码示例如下所示:

from skimage import dataimg=datachelsea() rows,cols=imgshape

二、访问像素修改颜色

在文章开头就已经说过了,图像本质上就是像素点来组成的,而图像之所以多种多样的原因也在于它们的颜色不同。简单来说,可以将图像看做是xy坐标系,长宽分别对应的就是x轴以及y轴。

而且python内将读取进来打开之后的形式就是多维数组像素点,那么只需要在对象后加上中括号使用切片语法。然后再其中添加x坐标、y坐标、通道索引(写冒号就是全部颜色通道修改)作为参数,之后再去用等号赋值即可修改它的颜色,代码示例如下所示:

from skimage import io,dataimg=datachelsea() R=img[:,:,0] ioimshow(R)

以上就是关于“Python怎么读取像素?Python如何用像素修改颜色”的全部内容了,希望对你有所帮助。

首先创建一个包含x值的列表,其中包含数字1~1000。接下来是一个生成y值的列表解析,它遍历x值(for x in x_values),计算其平方值,并将结果存储到列表 y_values中。然后,将输入列表和输出列表传递给scatter()。使用函数axis()指定了每个坐标轴的取值范围。函数axis()要求提供四个值:x和y坐标轴的最小值和最大值。在这里,我们将x坐标轴的取值范围设置为0-1100,将y坐标轴的取值范围设置为0-1100000。

回答你的问题费老大劲了,opencv用的不熟

我运行输出:

row=14,col=5

14 5 248 242 234 237

gray2 crop: 220 232 219 5

中心点坐标(109,108),宽高(w=218, h=217)

[95, 134] [83, 173]

斜率k= 325

#解题思路:因为我下载的你的,黑色周围还有白色,所以先去除了周围的白色,保证只有黑色部分

#对转灰度图,这样方便计算,每个像素点的值就是一个0-255的值,0为黑色,255为白色

#然后获得灰度图的row和col,与正常思维的width和height相反,row对应height,col对应width

#遍历row和col,先获得第一个白点,再获得最后一个白点,然后根据这两个坐标执行tan计算斜率k值

#读取图像

img2 = cv2imread("/img/blackWhitepng")

#转成单通道黑白图

gray = cv2cvtColor(img2, cv2COLOR_BGR2GRAY)

cv2imshow('img2', img2)

cv2imshow('gray', gray)

sp = grayshape

rows = sp[0]

cols = sp[1]

cr = 0

cl = 0

#裁剪左边和上边空白

for row in range(rows):

    isBreak = False

    for col in range(cols):

        if gray[row, col]==0:

            cr = row

            cl = col

            print("\nrow=%d,col=%d"%(row, col))

            isBreak = True

            break

        #print(gray[row, col], end='')

        #if(col==cols-1):

            #print("\nrow=%d,col=%d-------------------------------"%(row, col))

    if isBreak==True:

        break

print (cr, cl, rows, cols, rows-cr, cols-cl)

gray2 = gray[cr:rows-cr, cl:cols-cl]

cv2imshow('gray2', gray2)

#裁剪右下角空白

sp = gray2shape

rows = sp[0]

cols = sp[1]

row = rows-1

print ("gray2 crop:", rows, cols, row, col)

while row!=0:

    isBreak = False

    col = cols - 1

    while col!=0:

        if gray2[row,col]==0:

            isBreak = True

            break

        col-=1

    if isBreak==True:

        break

    row-=1

gray3 = gray2[0:row+1, 0:col+1]

cv2imshow('gray3', gray3)

#对裁剪后的gray3求中心点坐标

sp = gray3shape

rows = sp[0]

cols = sp[1]

x = cols//2

y = rows//2

print("中心点坐标(%d,%d),宽高(w=%d, h=%d)"%(x,y,cols,rows))

#求斜率 (y2-y1)/(x2-x1)

#遍历出第一个白点和最后一个白点,做计算

x1y1=[]

x2y2=[]

#求第一个白点坐标

for row in range(rows):

    isBreak = False

    for col in range(cols):

        if gray3[row,col]==255:

            x1y1append(col)

            x1y1append(row)

            isBreak = True

            break

    if isBreak==True:

        break

#求最后一个白点坐标

row = rows-1

while row!=0:

    isBreak = False

    col = cols - 1

    while col!=0:

        if gray2[row,col]==255:

            x2y2append(col)

            x2y2append(row)

            isBreak = True

            break

        col-=1

    if isBreak==True:

        break

    row-=1

print(x1y1,x2y2)

#计算斜率tan值

k = abs(x2y2[1]-x1y1[1])/abs(x2y2[0]-x1y1[0])

print("斜率k=",k)

cv2waitKey(0)

cv2destroyAllWindows()

生成一张纯色的

先设置的颜色,接着利用Image模块的new方法新生成一张,png格式的需要设置成rgba,类似的还有rgb,L(灰度图等),尺寸设定为640,480,这个可以根据自己的情况设定,颜色同样如此。

批量生成

上面生成了一张,那要生成十张呢,这种步骤一样,只是颜色改变的,利用循环就可以解决。首先创建一个颜色列表,把要生成的颜色放进去。接着循环获取不同的颜色,保存的时候利用字符串拼接的方法改变的名字。

本地生成的

封装成函数

前面的方法已经可以批量生成了,为了通用性强一点,我们可以封装成函数,把哪些可以改变的参数单独抽离出来。尺寸也同样,使用的时候,可以根据自己的需要定义颜色列表和尺寸。当然还有加一些提示用语和报错兼容性,这里就不讲了。

本地生成的

以上就是关于使用坐标定位控件时,可以采用像素或百分比两种方式对吗全部的内容,包括:使用坐标定位控件时,可以采用像素或百分比两种方式对吗、python中修改像素颜色并形成一个新图像的代码、python输出折线图中点的坐标值怎么算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9601088.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存