31
Programmazione / Re:analisi immagine statica
« il: 07 Giugno 2019, 19:42:40 »
provero' .. ma ho l sospetto che l'accesso a basso livello in C di image magic sia quasi inarrivabile ....
19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QPixmap pixmap("logo.png");
QImage image = pixmap.toImage();
QRgb col;
QMap<QRgb,int> rgbcount;
QRgb greatest = 0;
int width = pixmap.width();
int height = pixmap.height();
int count = 0;
for (int i = 0; i < width; ++i)
{
for (int j = 0; j < height; ++j)
{
col = image.pixel(i, j);
if (rgbcount.contains(col)) {
rgbcount[col] = rgbcount[col] + 1;
}
else {
rgbcount[col] = 1;
}
if (rgbcount[col] > count) {
greatest = col;
count = rgbcount[col];
}
}
}
qDebug() << count << greatest;
return app.exec();
}
Image.Pixels (gb.image)
Property Pixels As Integer[]
DAL 3.5
Return the image pixels colors as an array of 32 bits integers.
Public Sub CommutaMatrice(macchina As Integer, sorgente As Integer, destinazione As Integer)
Dim Ingresso As Byte
Dim Uscita As Byte
Dim iniziale As Byte[] = [&AA, &55, &03]
ingresso = CByte(sorgente)
uscita = CByte(destinazione)
iniziale.Push(ingresso)
iniziale.Push(uscita)
If seriale.Status = Net.Active Then
Seriale.Close
Endif
With Seriale
.PortName = "/dev/" & settings["SerialPort", "ttyACM0"]
.Speed = 9600
.Parity = SerialPort.None
.DataBits = 8
.StopBits = 1
.FlowControl = SerialPort.None
.Drop
.Open
End With
If seriale.Status = Net.Active Then
iniziale.Write(Seriale, 0, iniziale.Count)
mylogger("MASTER_CONTROL:" & sorgente & ">" & destinazione & "(" & macchina & ")", Logger.Info)
seriale.Close
Endif
PlayNext
End
sono i valori esadecimali FISSI
Forse vuole questi: 170 85 3 0 31
e non un byte di più.
Cioè "singoli" byte, che solo insieme assumono un significato per la macchina remota.
Seconda questione:
...ma InizioStringa deve essere per forza di tipo.... Stringa ?
echo -en '\xAA\x55\x03\x00\x1F' > /dev/ttyUSB0
Public Sub CommutaMatrice(macchina As Integer, sorgente As Integer, destinazione As Integer)
Dim InizioStringa As String
Dim Ingresso As String
Dim Uscita As String
InizioStringa = "AA5503"
ingresso = Hex(sorgente, 2)
uscita = Hex(destinazione, 2)
Seriale.Close
With Seriale
.PortName = "/dev/" & settings["SerialPort", "ttyACM0"]
.Speed = 9600
.Parity = SerialPort.None
.DataBits = 8
.StopBits = 1
.FlowControl = 0
.Open
End With
seriale.Begin
Wait 1
Print #seriale, InizioStringa & ingresso & uscita
Wait 1
Seriale.Send
mylogger("MASTER_CONTROL:" & sorgente & ">" & destinazione & "(" & macchina & ")", Logger.Info)
seriale.Close
PlayNext
End