|
|
|
ผมอยากขอคำปรึกษาเกี่ยวกับ Image Processing การเปรียบเทียบรูป แล้วคิดออกมาเป็น% |
|
|
|
|
|
|
|
วิธีการง่ายๆน่ะครับ(ไม่แน่ใจว่าจะใช้ทางการแพทย์ได้ไม๊) convert image ทั้ง 2 รูป เป็น Binary ก่อน แล้วค่อยเอา Binary มาเปรียบเทียบกัน(compare string)ครับ
|
|
|
|
|
Date :
2013-06-27 13:39:13 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วัดขนาดของรูปภาพเอาหรอครับ
คือรูปที่ถ่ายผมต้องการให้วัดเฉพาะจุดอ่ะครับ คือเป็นการถ่ายรูปเท้าของผู้ป่วยอ่ะครับแล้วเอามาหาอัตราการเพิ่มขนาดของเท้าว่าผิดปกติหรือเปล่าครับ
|
|
|
|
|
Date :
2013-06-30 16:58:53 |
By :
MaliNo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะไม่ work นะครับ ถ้าเผื่อการถ่ายภาพหรือรูปภาพมี resolution หรือ คุณภาพของรูปถ่ายไม่เท่าเดิม ก็ทำให้เพี้ยนได้ง่าย ๆ นะครับ
|
|
|
|
|
Date :
2013-07-01 01:39:27 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PHP(image processing) http://www.php.net/manual/en/refs.utilspec.image.php
อย่างที่คุณ deawx บอกครับ
การถ่ายรูปที่นำมาเปรียบทียบต้องขนาดเท่ากัน มุมเท่ากัน เหมือนวางทับลงไปแล้วมีจุดต่างแค่รอยที่เกิดใหม่เท่านั้น
ไม่งั้นต้องเขียนโปรแกรมคำนวนตัดภาพให้ตรงกับภาพเดิมที่ใช้เปรียบเทียบ(อันนี้โหดไป photoshop มีความสามารถนี้หรือป่าว)
เช่น หาค่าสีของแต่ละ pixel หรือความเข้มที่คิดเป็นเปอร์เซนในภาพ เช่น ภาพขาวดำ ขาวจะขยายออกไปเรื่อยๆ ก้คำนวนเอา
อันนี้เป็นตัวอย่าง ของ imagecolorat() ที่สร้าง histogram จากรูป
Code (PHP)
<?php
error_reporting(E_ERROR);
$source_file = './img/cartoon1.jpg';
$maxheight = 300;
$barwidth = 2;
$im = imagecreatefromjpeg($source_file);
$imgw = imagesx($im);
$imgh = imagesy($im);
// n = total number or pixels
$n = $imgw * $imgh;
$histo = array();
for ($i = 0; $i < $imgw; $i++) {
for ($j = 0; $j < $imgh; $j++) {
// get the rgb value for current pixel
$rgb = imagecolorat($im, $i, $j);
// extract each value for r, g, b
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
// get the Value from the RGB value
$V = round(($r + $g + $b) / 3);
// add the point to the histogram
$histo[$V] += $V / $n;
}
}
// find the maximum in the histogram in order to display a normated graph
$max = 0;
for ($i = 0; $i < 255; $i++) {
if ($histo[$i] > $max) {
$max = $histo[$i];
}
}
echo "<div style='width: " . (256 * $barwidth) . "px; border: 1px solid'>";
for ($i = 0; $i < 255; $i++) {
$val += $histo[$i];
$h = ( $histo[$i] / $max ) * $maxheight;
echo "<img src=\"./img.gif\" width=\"" . $barwidth . "\"
height=\"" . $h . "\" border=\"0\">";
}
echo "</div>";
?>
Credit : http://bubble.ro/How_to_create_the_histogram_of_an_image_using_PHP.html
หรือความสามารถอื่นของ PHP ที่ผมยังไม่รู้(ตาม url บนสุด)
|
ประวัติการแก้ไข 2013-07-01 03:06:46
|
|
|
|
Date :
2013-07-01 02:58:12 |
By :
t-monroe |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกท่านครับ เป็นแนวทางที่ดีมากๆๆครับ
ผมจะลองนำไปปรับใช้ดูครับ ผมพอจะคิดแนวทางแปลกๆออกแล้วครับ
|
|
|
|
|
Date :
2013-07-01 22:30:15 |
By :
MaliNo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูตอนเขาอุลตร้าซาวด์ดูครับ เขาจะมีการกำหนดพิกัด วาด จุดวงกลม
ซึ่งตัววงกลมนั่นแหละครับ ที่ต้องเอาไปโพรเซสต่อ จะใหญ่จะเล็กขึ้น ก็ว่ากันไป
|
|
|
|
|
Date :
2013-07-02 05:01:14 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเจ้าของกระทู้ทำแล้วเวิร์คอย่าลืมเอามาแบ่งปันกันบ้างนะครับ
สนใจเรื่อง image processing เหมือนกัน
|
|
|
|
|
Date :
2013-07-02 15:40:51 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รอชมครับ
|
|
|
|
|
Date :
2013-07-02 15:57:40 |
By :
Joe_Dev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|