Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] подсчитать площадь произвольной фигуры

Ответить
Настройки темы
[решено] подсчитать площадь произвольной фигуры

Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


подскажите пожалуйста, в помощью чего можно посчитать площадь произвольной криволинейной фигуры, скажем, изображенной на фотке?

Отправлено: 10:30, 06-04-2008

 

Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Определенные интегралы

-------
Ehhh.. what's up, doc?..


Отправлено: 11:03, 06-04-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Могу предложить такой вариант:
1. В фотошопе обводим фигуру чёрным цветом (и делаем заливку, разумеется).
2. Сохраняем этот чёрный контур в монохромном gif-файле.
3. Используем скрипт:
HTML код: Выделить весь код
<html><head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <title>Площадь</title> <script> if (window.CanvasRenderingContext2D) { var ctx; function init() { ctx = canv.getContext('2d'); if(!canv.getContext) return; var img = new Image(); img.onload = function() { canv.width = img.width; canv.height = img.height; ctx.drawImage(this, 0, 0, img.width, img.height); black = 0; white = 0; for (w = 0; w < img.width; w++) { for (h = 0; h < img.width; h++) { if (ctx.getImageData(w,h,1,1).data[0] == 0) black++; else white++; } } alert("Чёрных точек: " + black + "; других: " + white + "; всего: " + (black+white)); } img.src = "1.gif"; } } </script> </head> <body> <center>Скрипт считает количество чёрных точек на изображении. Поместите изображение 1.gif в папку со скриптом и нажмите кнопку "Подсчитать". На подсчёт может уйти много времени в зависимости от размеров изображения и производительности компьютера. <br /> <input type="button" onClick="init();" value="Подсчитать" /><br /><canvas id="canv" width="1" height="1"> Для работы скрипта требуется Firefox 2. </canvas><br /> </body></html>

Сохраните это в виде html-страницы. Файл 1.gif с фигурой кладём рядышком. Кликаем по кнопочке на странице. Оно считает и выводит количество чёрных и белых пикселей.
Работает только в Firefox'е 2 и, быть может, в Safari, но я не уверен.

Наверняка есть способ считать напрямую по картинке, но мне известен только этот
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:28, 06-04-2008 | #3


Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


mrcnn, если б были известны уравнения кривых...
Coutty, попробуем...

Отправлено: 12:51, 06-04-2008 | #4


Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


Coutty, да, как под ие там, оперу никак... ток конкретный файрфокс ((

Отправлено: 13:38, 06-04-2008 | #5


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Surround, Firefox поддерживает canvas.getImageData(), Опера и IE - нет. С этим и ограничение.
Можно сделать на другом языке. Пожалуйста - ваше право. Я всего лишь концепт предложил. Который, кстати, работает в FF

Отправлено: 14:18, 06-04-2008 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Я думал предстоит считать площадь поверхности. Например стены, стола, двери автомобиля, или иной объемной плоскости. (к словам не докапываться, вы поняли о чем речь) А фигура оказалось плоской...

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 19:36, 06-04-2008 | #7


Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


решил проблему следующим образом:
PHP код: Выделить весь код

<?php  $file "1.gif";  

$im = @imagecreatefromgif($file);  
$w=imagesx($im); 
$h=imagesy($im);  
$s=0;  
for(
$i=1;$i<=$h;$i++)  {      
   for(
$j=1;$j<=$w;$j++) {
      if (
imagecolorat($im$j$i)==0$s++;      
   } 
}
print 
"number of black px: ";  print $s;  ?>

а пиксель - это 0.0009см2
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:25, 07-04-2008 | #8


-!-


Сообщения: 3792
Благодарности: 224

Профиль | Отправить PM | Цитировать


Цитата:
а пиксель - это 0.0009см2
это смотря какое разрешение (dpi)

Отправлено: 10:34, 13-11-2008 | #9



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] подсчитать площадь произвольной фигуры

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Окно автозапуска произвольной формы в Autorun Pro Enterprise 10 ProgrammerPC Оформление Windows XP 6 20-11-2009 20:44
[решено] Как подсчитать сумму нескольких переменных Не флужу AutoIt 4 13-08-2009 06:24
[решено] Установка произвольной задержки, ограниченая от 10 до 60 мин sashadeg AutoIt 3 25-04-2009 05:43
Прочие БД - [решено] Как подсчитать сумму двух полей в Access 2003 S-ON Программирование и базы данных 2 14-04-2008 17:30
Площадь отсканированого.... aldehyde Программирование и базы данных 11 25-05-2004 00:23




 
Переход