该程序基于pyqt和opencv.我计划在使用QT作为GUI时使用opencv读取和处理图像.
当我打开灰色图像时,结果还可以.但是在打开彩色图像时会改变图像的颜色.我想这是因为当我将numpy数组转换为OImage类型时我犯了错误,但我无法弄清楚如何纠正它.
# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
import cv2
from cv2 import cv
QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
class MainWindow(QMainWindow):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
self.setWindowTitle("Show Image with pyqt")
self.imageLabel=QLabel()
self.imageLabel.setSizePolicy(QSizePolicy.Ignored,QSizePolicy.Ignored)
self.setCentralWidget(self.imageLabel)
self.image=QImage()
self.createActions()
self.createMenus()
self.cv_img = None
def createActions(self):
self.fileOpenAction=QAction(QIcon(":/fileopen.png"),self.tr("Open"),self)
self.fileOpenAction.setShortcut("Ctrl+O")
self.fileOpenAction.setStatusTip(self.tr("Open the file"))
self.connect(self.fileOpenAction,SIGNAL("triggered()"),self.slotOpenFile)
self.exitAction=QAction(QIcon(":/filequit.png"),self.tr("Quit"),self)
self.exitAction.setShortcut("Ctrl+Q")
self.setStatusTip(self.tr("Quit"))
self.connect(self.exitAction,SIGNAL("triggered()"),self.close)
def createMenus(self):
fileMenu=self.menuBar().addMenu(self.tr("File"))
fileMenu.addAction(self.fileOpenAction)
fileMenu.addAction(self.exitAction)
def slotOpenFile(self):
fileName=QFileDialog.getOpenFileName(self,self.tr("Open a file"),\
".",self.tr("Image File(*.png *.jpg *.jpeg *.bmp)"))
cvfilename=fileName.toLocal8Bit().data()
if fileName.isEmpty()==False:
cvfilename=fileName.toLocal8Bit().data() #convert Qstring to char*
self.cv_img = cv2.imread(cvfilename) …Run Code Online (Sandbox Code Playgroud) 在检查s7nodave对S7-1200的EPICS设备支持时,我遇到了一个引用libnodave的问题.当我尝试读取PLC中的任何内存地址时,IOC控制台报告错误:
epics> 2014/05/19 14:20:41.964 Siemens-PLC error while reading 1 bytes from PLC address FB35. Status = context not supported. Step7 says:Function not implemented or error in telgram.
Run Code Online (Sandbox Code Playgroud)
这是libnodave状态代码0x8104.当我试图在网上搜索此错误代码时,所有结果都是参考S7-1500,而不是S7-1200.
我可以通过Siemens SDK访问这些内存块:它们存在并包含有效数据.
为什么S7-1200拒绝发送libnodave数据?有没有选项可以从网络中提供数据块?
我用EPICS版.3.14.12.4,s7nodave 1.03 build with asyn ver.4.11,boost ver.1.55.0.在PC和Virtualbox上尝试了各种版本.
我需要确定哪个统计数据让我在数字图像上找到哪条线具有最高的变化.我使用方差(平方单位,计算为numpy.var(x))和变异系数(无单位,计算为numpy.sd(x)/numpy.mean(x)),但我得到了不同的值,如下所示:
v1 = line(VAR(x))
v2 =线(CV(x))
打印(V1,V2)
(12,17)
不应该都找到同一条线?在这种情况下哪一个可能更好用?
使用西门子 S7-1200 PLC 在 python 的 snap7 客户端脚本下运行显示以下常见的 CLI 拒绝错误。这里的常见问题是什么以及如何解决?
脚本:
import snap7
from snap7.util import *
import struct
import snap7.client
from snap7.snap7types import S7AreaDB
plc=snap7.client.Client()
plc.connect('192.168.0.69',0,1)
area = 0x84
start = 0
length = 1
bit = 0
byte= plc.read_area(area,0,start,length)
Run Code Online (Sandbox Code Playgroud)
追溯错误:
找不到记录器“snap7.common”回溯(最近一次调用最后一次)的处理程序:文件“”,第 1 行,文件“/usr/local/lib/python2.7/dist-packages/snap7/client.py ",第 242 行,在 read_area check_error(result, context="client") 文件“/usr/local/lib/python2.7/dist-packages/snap7/common.py”,第 69 行,在 check_error 中引发 Snap7Exception(错误) snap7.snap7exceptions.Snap7Exception: CLI : 函数被 CPU 拒绝(未知错误)
我有浮点值,我试图将它们转换为小时:分钟:秒,但我失败了。我已经关注了以下帖子:
例如,我有一个浮点格式的值:
time=0.6
result = '{0:02.0f}:{1:02.0f}'.format(*divmod(time * 60, 60))
Run Code Online (Sandbox Code Playgroud)
它给了我输出:
00:36
Run Code Online (Sandbox Code Playgroud)
但实际上它应该像“00:00:36”。我如何得到这个?
我有很多灰度图像要使用均值和标准差进行归一化。我使用以下过程:
计算图像的均值和标准差。
从图像中减去平均值。
将结果图像除以标准偏差。
但是,结果我得到了一个黑色图像。我的代码有什么问题?
import cv2
img = cv2.imread('E.png') # read an image
gray_image = cv2.cvtColor(img , cv2.COLOR_BGR2GRAY) # converting the image to grayscale image
img = cv2.resize(gray_image, (60, 60)) # Resize the image to the size 60x60 pixels
cv2.imwrite("Grayscale Image.png",img) #To write the result
mean, stdDev = cv2.meanStdDev(img) #Get Mean and Standard-deviation
image = (img-mean)/stdDev #Normalization process
cv2.imwrite("Normalized Image.png",image) #To write the result
Run Code Online (Sandbox Code Playgroud)
输入图像: 
灰度输出: 
归一化图像输出: 
我想创建一个工业自动化应用程序来执行以下功能:
我是工业自动化行业和物联网的新手,我知道我们有 OPC UA 来救援。
我浏览了许多网站和 YouTube 视频来了解 OPC UA 及其前身(OPC DA、OPC A&E、OPC HDA)。我已经安装了 matrikon OPC 服务器和资源管理器(客户端)来探索更多。
假设我想从SIMATIC S7-1200 PLC读取信号,根据我的理解,OPC UA服务器是随PLC一起提供的,用于将OPC UA信息转换为Profinet信息。
所以,我的问题是:
如果有人分享一些资源,将不胜感激!
我spark.read.csv()在 pyspark 中得到了一个数据框。我可以使用df.filter(df['mobile'] == 'Vivo'). 现在,我想按多个值过滤“移动”列。
例如,我有一个band_list=['Apple','Samsung','Vivo'],
我想过滤'mobile'此 band_list 中的值。
我知道一种方法是df.filter((df['mobile'] == 'Apple') | (df['mobile'] == 'Samsung')|(df['mobile'] == 'Vivo')),但它不灵活。
有人可以告诉我解决这个问题的另一种方法吗?
我正在尝试创建一个 Web 应用程序来管理我的 Discord 服务器的用户。在我的数据库中,我只存储了用户的 ID。代码在浏览器中运行。但我也添加了 node.js 标签,因为我现在不知道即使通过调用在 node.js 中编程的服务器函数也能做到
我曾尝试使用 discord.js API,但据我所知,它需要一个不和谐的机器人来做到这一点。那不是我想要的。我想从我的前端检索用户的信息,即使是通过调用后端函数,但没有始终在线的不和谐机器人。换句话说,我需要更简单的东西。
我想仅使用 id 来请求用户的信息。在 javascript 中执行此操作的最佳方法是什么?
python ×6
plc ×3
s7-1200 ×3
siemens ×3
numpy ×2
opencv ×2
tia-portal ×2
apache-spark ×1
dataframe ×1
discord ×1
floating ×1
grayscale ×1
image ×1
javascript ×1
libnodave ×1
opc-ua ×1
pyqt ×1
pyspark ×1
qt ×1
statistics ×1
time ×1
variations ×1