waitKey () выводит мусор при использовании VideoCapture [duplicate]

Вы можете использовать функции empty () и isset (). Если вы хотите, чтобы он работал с разными файлами, просто измените action='yourphp.php' на html, который я вам даю, и store the PHP script на этот файл yourphp.php. Также вам нужно изменить index.html на index.php, чтобы активировать функции PHP.

PHP

<?php

    error_reporting(0);
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: yoursite.com'; 
    $to = 'contact@yoursite.com'; 
    $subject = 'Customer Inquiry';
    $body = "From: $name\n E-Mail: $email\n Message:\n $message";


    if ($_POST['submit']){
                if (!(empty($_POST['name']))) {
                        if (!(empty($_POST['email']))){
                            if (!(empty($_POST['message']))){
                                mail ($to, $subject, $body, $from);
                                echo '<p>Your message has been sent!</p>';
                            }else{
                                echo '<p>Fill your message please.</p>';}
                        }else {
                            echo '<p>Fill your email please.</p>';}
                }else{
                    echo '<p>Fill your name please.</p>';}              
    }else{
            echo '<p>Fill the form.</p>';}
?>

HTML

<html>
    <form method="post" action="?">
        <table>
            <tr><td>Name</td><td><input type='text' name='name' id='name'/></td></tr>
            <tr><td>Email</td><td><input type='text' name='email' id='email'/></td></tr>
            <tr><td>Message</td><td><input type='text' name='message' id='message'/></td></tr>
            <tr><td></td><td><input type='submit' name='submit' id='submit'/></td></tr>
        </table>
    </form>
</html>

С наилучшими пожеланиями!

4
задан Marcus 26 April 2016 в 11:45
поделиться

1 ответ

Эта функция сильно зависит от операционной системы: / некоторые из них добавляют бит в целое число ....

он должен вернуть код ascii нажатия клавиши, например, 27 - это код ascii для клавиши ESC ...

Теперь проблема заключалась бы в том, чтобы узнать, что происходит, когда вы передаете int в char.

In этот случай: он определяется реализацией ... (это то, что говорит стандарт) здесь есть ссылка в аналогичный случай

. Некоторые решения:

1) поместил его в переменную char ... хотя он определен по реализации, кажется, что это одно из наиболее распространенных рабочих решений (в некоторых образцах opencv они используют его)

2 ) используйте int key = cv::waitKey(1) & 255. Это устранит лишние биты ...

Чтобы пойти немного дальше, давайте проверим значения:

You obtained as an int: 1048603
in binary it will be: 00000000 00010000 00000000 00011011
27 in binary is:      00000000 00000000 00000000 00011011

Как вы можете видеть, они отличаются от этого одиночного бита. Самый безопасный и самый переносимый способ - удалить его с помощью побитовой логической операции, например, моего решения номер 2. Другие люди используют некоторое шестнадцатеричное значение вместо 255, например 0xEFFFFF, что в двоичном формате это будет

00000000 11101111 11111111 11111111

Почему это происходит?

Я искал это один раз, кажется, что некоторые из битов изменяется, если у вас есть numslock или capslock или ctrl клавиша активна ... снова, это зависит от платформы.

6
ответ дан Community 20 August 2018 в 22:02
поделиться