php-opencv / php-opencv

opencv 4.5+ with dnn module for php 7/8

Home Page:https://github.com/php-opencv/php-opencv-examples

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CV\Scalar values mast be float

ta-tikoma opened this issue · comments

Scalar must contains floating point numbers.

Source https://github.com/opencv/opencv/blob/17234f82d025e3bbfbf611089637e5aa2038e7b8/modules/core/misc/java/src/java/core%2BScalar.java#L8

Example:

(new Scalar(78.4263377603, 87.7689143744, 114.895847746))->print()

Output:

[78, 87, 114, 0]

Need:

[78.4263377603, 87.7689143744, 114.895847746, 0]

Yes return integer not Float. Because he wrote this line
Scalar scalar = Scalar((int)value1, (int)value2, (int)value3, (int)value4);

line 210 in flie opencv2/core/opencv_type.cc

Convert Line
Scalar scalar = Scalar((int)value1, (int)value2, (int)value3, (int)value4);
To

Scalar scalar = Scalar(value1, value2, value3, value4); 

and Test in Windows
IMG_20230429_114857.jpg

@BbenWeb1 thanks for you research!
Do you want to make pull request?

@ta-tikoma What system are you working on

@ta-tikoma What system are you working on

ubuntu in wsl2

@ta-tikoma What system are you working on

ubuntu in wsl2

ok test in Ubuntu 22.04 WSL 2
Capture_2023_05_02_23_39_39_525

instal For Ubuntu Wsl2

apt update && apt install -y wget
wget https://raw.githubusercontent.com/php-opencv/php-opencv-packages/master/opencv_4.7.0_amd64.deb && dpkg -i opencv_4.7.0_amd64.deb && rm opencv_4.7.0_amd64.deb
apt update && apt install -y pkg-config cmake git php-dev
git clone https://github.com/BbenWeb1/php-opencv.git
cd php-opencv && phpize && ./configure --with-php-config=/usr/bin/php-config && make && make install
cd  .libs
mv opencv.so  /usr/bin

if php version 8.2

enable php-opencv extension:
echo "extension=opencv.so" > /etc/php/8.2/cli/conf.d/opencv.ini
echo "extension=opencv.so" > /etc/php/8.2/fpm/conf.d/opencv.ini
echo "extension=opencv.so" > /etc/php/8.2/apache2/conf.d/opencv.ini

or php version 8.1

echo "extension=opencv.so" > /etc/php/8.1/cli/conf.d/opencv.ini
echo "extension=opencv.so" > /etc/php/8.1/fpm/conf.d/opencv.ini
echo "extension=opencv.so" > /etc/php/8.1/apache2/conf.d/opencv.ini
cd  
nano test.php

Write
`<?php
namespace CV ;
use CV\Scalar;
(new Scalar(78.4263377603, 87.7689143744, 114.895847746))->print();
print_r((new Scalar(78.4263377603, 87.7689143744, 114.895847746))->val);

?>`
and save

php test.php